nginx服务的rewrite

nginx后端服务的指令

1)upstream指令 :设置后端服务器组的主要指令

Upstream name {}

2)server指令:用于设定组内的服务器

3)Ip_hash指令:

该指令用于实现会话保持功能,将某个客户端段请求多次重定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话,只有当该服务器处于无效的时候,客户端的请求才会被下一个服务器接收

例子:

upstream backend {
ip_hash
server server1.example.com
server server2.example.com
}

rewrite重写

Rewrite 主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。

通过Rewrite规则,可以实现规范的URL、根据变量来做URL转向及选择配置。

1)地址转发和地址重写

地址转发后,客户端浏览器的地址显示是不变的,而地址重写后客户端浏览器地址栏的地址会转变为服务器确定的位置;

在一次地址转发的过程中,只产生一次网络请求,而地址转写的过程中一般会产生两次请求;

2)rewrire指令

该指令通过正则表达式的使用用来改变URI。可以同时存在一个或者多个指令,按顺序依次对URL进行匹配和处理

例子: rewrite myweb,com http://neweb.com/premanent

3)rewrite的使用

域名跳转

例1:

server
{
listen 80;
server_name jump.myweb.com
rewrite ^/ http://jump.myweb.info/;
}

客户端访问http://jump.myweb.name时URL将被nginx服务器重写为http://jump.myweb.info/,客户端得到的数据实际上也是有http://jump:myweb.info相应的

例2)

server {
listen 80
server_name jump.myweb.com jump.myweb.info;
if ($host ~ myweb\.info) ##正则表达式中的.要用\转义
{
rewrite ^(.*) http://jump.myweb.name$1 permanent;#多级域名跳转
}

客户端访问http://jump.myweb.info/reqsoure的时候。URL被重写为http://jump.myweb.name/reqsource,客户端的数据实际上由http://jump.myweb.name响应的。

例3)

server {
listen 80
server_name jump1.myweb.com
if ($http_host ~* ^(.*)\.myweb\.name$)
{
rewrite ^(.*) http://jump.myweb.name$1
break
} }

客户端访问http://jump.myweb.name/reqsource时,URL将被重写http:/jump.myweb.name/reqsource,实现了三级域名跳转

nginx的rewrite的更多相关文章

  1. nginx 配置rewrite 笔记

    nginx 配置rewrite笔记: 通过下面的示例来说明一下,1. 先说说location : location 表示匹配传入的url地址,其中配置符有多种,各种情况的意义不一样: location ...

  2. Nginx重定向[Rewrite]配置 for wordpress & Discuz

    首先Apache的Rewite规则差别不是很大,但是Nginx的Rewrite规则比Apache的简单灵活多了Nginx可以用if进行条件匹配,语法规则类似Cif ($http_user_agent ...

  3. 使用nginx的rewrite实现代理指定文件夹命令方法

    使用nginx的rewrite实现代理指定文件夹命令方法 使用nginx代理Tomcat,Tomcat公布web的时候通常都是带着项目名称的. 比方项目名称为"aven".那么公布 ...

  4. Nginx的Rewrite规则与实例

    通过Rewrite规则可以实现规范的URL.根据变量来做URL转向及选择配置,用好Rewrite有时起到事半功倍的效果. 语法 Nginx的Rewrite相比Apache的要好理解很多,主要使用指令有 ...

  5. nginx 带? rewrite 规则

    由于需要重定向 url ,nginx需要rewrite .参考文献 http://huangqiqing123.iteye.com/blog/2083434 需求:将http://10.106.1.3 ...

  6. Nginx的rewrite应用

    Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Ngi ...

  7. Nginx使用rewrite重新定向

    [Rewrite重定向]Nginx使用rewrite重新定向   使用nginx做重新定向. nginx参考网址:http://blog.sina.com.cn/s/blog_97688f8e0100 ...

  8. php ci nginx 伪静态rewrite配置方法

    php ci nginx 伪静态rewrite配置方法 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$ ...

  9. Apache和Nginx的Rewrite规则对比

    一.Apache的rewrite 1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的(.h ...

  10. Nginx的Rewrite正则表达式,匹配非某单词

    Nginx的Rewrite正则表达式,匹配非某单词 由于要rewrite一个地址从 /mag/xx/xxx/ -> /m/xxx 但原先 /mag/xx/more/ 要保留 这就得写一个比较奇特 ...

随机推荐

  1. 【BZOJ 3709: [PA2014]Bohater】

    首先,这是我n久之前培训的时候老师讲的题目了,今天突然看到,那就讲讲吧. 首先,我们考虑怎么打怪... 显然,我们需要保证这个怪要尽可能的打死(就是尽量不被干死),并且保证尽可能的净获得血量大的在前面 ...

  2. 清空mysql数据

    delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内 ...

  3. 谈谈 Android 的优点和不足之处?

    优点:1.开放性,开源,免费,可定制2.挣脱运营商束缚3.丰富的硬件选择4.不受任何限制的开发商5.无缝结合的 Google 应用缺点:1.安全问题.隐私问题2.同质化严重3.运营商对 Android ...

  4. linux_Ubuntu相对路径和绝对路径

    绝对路径 从/目录开始描述的路径为绝对路径,如: cd /home ls /usr 相对路径 从当前位置开始描述的路径为相对路径,如: cd ../../ ls abc/def .和.. 每个目录下都 ...

  5. python中_new_()与_init_()的区别

    __new__方法的使用 只有继承于object的新式类才能有__new__方法,__new__方法在创建类实例对象时由Python解释器自动调用,一般不用自己定义,Python默认调用该类的直接父类 ...

  6. bootstrap datetimepicker、bootstrap datepicker日期组件对范围的简单封装

    1.bootstrap datepicker 使用 <div class="row form-group"> <label class="control ...

  7. Brew 替换为国内源Mac

    # 替换brew.git cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/home ...

  8. CentOS Linux修改默认Bash shell为Zsh shell

    Shell是在程序员与服务器间建立一个桥梁,它对外提供一系列命令,让我们得以控制服务器.常用的Bash就是Shell的一种,也是Linux下默认Shell程序.这里介绍一种更强大的.更人性化的Shel ...

  9. PERCONA-TOOLKIT 安装 使用

    1.基于MySQL主从环境 可以参考https://www.cnblogs.com/xianglei_/p/12068241.html 上传rpm包 并安装 1 2 cd /usr/local/src ...

  10. Linux上面执行 Windows 命令(比如 重启服务)的简单方法

    1. 首先 基础是:openssh 还有 expect的包 2. 方法 安装openssh 转帖来自: https://www.jianshu.com/p/6e5bc39d386e 最近项目在搞Jen ...