当前位置:首页 > 技术文章 > 正文内容

nginx rewrite重定向

arlanguage4个月前 (01-16)技术文章48

1.Rewrite基本概述

1.什么是rewrite
Rewrite主要实现url地址重写,以及地址重定向,就是将用户请求web服务器的地址重新定向到其他URL的过程。


2.Rewrite使用场景

地址跳转:www.360buy.com--->www.jd.com
协议跳转: http://oldbey.com--->https://oldboy.com
静态:动态url---->静态url 防止url暴露网站路径(目录结构)

blog.oldboy.com/index,php?product=linux&page=01 ==rewrite==> blog.oldboy.com/linux/page01
其他跳转需求:seo 需求

nginx变量官方文档

http://nginx.org/en/docs/

if用法


Syntax:if(condition){...}
Defau7t: -
Context:server, locationl

if () {
满足条件后执行指令
}
#主要应用场景配合各种nginx变量(内置/手动创建)判断。…."
#常用变量

案例02:过滤Nginx请求中包含a1=3526的http请求到10.16.3.5的8080端口处理

re.oldboy.com?a1=3526&a2=666&a3=9999
$host
$requst _uri

if( $request_uri ~* 'a1=3526' ){
    proxy_pass http://10.16.3.5:8080;
}

$request_method 请求方法
$request_uri 请求的uri
$status
用于取出http请求报文中的内容
$http_
用于取出http响应报文中的内容
$sent_http_
1.使用方法选择你要取出的内容
2.判断是请求还是响应
3. 小写,减号变成下划线
$http_user_agent
User-Agent

set命令

set $oldboy "idao996";
return 200  $o1dboy;

#案例03:用户
用户请求 rewrite.oldboy.com.cn 用户访问 /code/rewrite/cn/index.html o1dboy cn
用户请求 rewrite.oldboy.com.jp 用户访问 /code/rewrite/ip/index.htm1 oldboy jp

return语法

#需求1: 如果用户使用ie浏览器访问rewrite.oldboy.com 则返回值字符串.

#需求3:如果用户使用ie浏览器访问rewrite.oldboy.com,则直接跳转到o1dboyedu.com

rewrire功能

简单案例1:

案例讲解:

##需求1:根据用户浏览器请求头中携带的语言调度到不同的页面

##需求2:用户通过手机设备访问,ur1.o1dboy.com 跳转至ur1.oldboy.com/m##

需求3:用户通过手机设备访问ur1.0ldboy.com 跳转至m.etiantian.org

#小结:
跳转方式###1. if+rewrite/return###2.if+nginx变量
持林扑3.set 设置变量
###4.rewrite/return 跳转

##需求4:用户通过http协议请求,能自动跳转至https协议

##需求5: 网站维护过程中,希望用户访问所有网站重定向至一个维护页面

##需求6:当网站遇到403 404 502 等错误时,自动跳转至临时维护的静态页 https://404.life

#需求7:公司网站在停机维护时,指定的ip能够正常访问,其他的ip跳转到维护页

rewrite_log开启

论坛rewirei重写案例

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/912.html

标签: nginx 8080
分享给朋友:

“nginx rewrite重定向” 的相关文章

Nginx热升级流程,看这篇就够了

在之前做过 Nginx 热升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚,...

nginx知识梳理及配置详解

nginx安装#nginx安装 yum -y install gcc pcre-devel openssl-devel #依赖包 useradd -s /sbin/nologin nginx ./configure --prefix=/usr/local/nginx #...

宝塔面板——永久免费的服务器运维面板

宝塔面板是什么?宝塔面板,简单好用的服务器运维面板。官称永久免费。Linux版请确保纯净系统安装(支持CentOS、Ubuntu、Debian、Fedora、deepin),Web端管理,一键创建网站、FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换;自带LNMP与LAM...

宝塔面板通过可视化界面来管理云服务器的运维软件

宝塔面板是专门给广大普通用户通过可视化界面来管理你的云服务器(Linux或者Window系统),节省操作服务器的时间和精力成本,可以一键安装和搭建网站,可以一键安装PHP运行环境,一键安装java运行环境,一键安装各种开发环境.普通人用的最多的就是搭建和部署网站.例如:宝塔面板是一款服务器管理软件,...

为什么服务器管理用户都使用宝塔面板?

宝塔面板宝塔面板到底是个什么鬼?为什么这么多站长使用宝塔面板?宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得...

Nginx 转发时的一个坑,运维居然让我背锅

最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了。新增的几个 header 是这样的:accept_signaccept_token…反复检查代码,确定这些 header 是传...