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. mysql 5.7安装方法

    yum方式安装rpm包形式,安装mysql的方法: 方法一: 使用yum方式,下载后离线安装mysql的安装包 安装前,先使用命令查看,确定系统未安装mysql安装包.彻底清除之前安装的mysql安装 ...

  2. Jquery 选择器的用法

    用js 动态生成<ul>标签的<li>条目,因为在动态的创建过程中li的点击事件是不太方便的,因此采用JQuery 的类选择器来实现. html代码: <div id=& ...

  3. vue问题四:富文本编辑器上传图片

    vue使用富文本编辑器上传图片: 我是用的是wangEditor 富文本编辑器 demo:http://www.wangeditor.com/ 1).安装依赖:npm install wangedit ...

  4. Firefox63以后 禁止自动更新方式

    参考:https://bbs.kafan.cn/thread-2135160-1-1.html 63版以后在prefs.js文件末尾加代码来禁止自动更新的方式失效 新方式: 使用DisableAppU ...

  5. leetcode 215 第K个最大的元素

    此问题可转化为Top K问题进行考虑,当用小顶堆选出K个最大值时,堆顶的元素即为第k大的元素 class Solution { public: int findKthLargest(vector< ...

  6. Ubuntu下查找nginx日志

    使用awk检测nginx日志, 按小时计数 awk '{split($4,array,"[");if(array[2]>="29/May/2016:00:00:26 ...

  7. emqtt emq 的主题访问控制 acl.conf

    访问控制(ACL) EMQ 消息服务器通过 ACL(Access Control List) 实现 MQTT 客户端访问控制. ACL 访问控制规则定义: 允许(Allow)|拒绝(Deny) 谁(W ...

  8. Prism中在Region中注入匹配问题

    简单实例说明 [Export] public partial class TitleView : UserControl { public TitleView() { InitializeCompon ...

  9. 创建的项目如果没有src/main/resources文件夹,如何解决?

    这是刚创建的一个maven项目,由此可以看见,项目并没有存放配置文件的src/main/resources文件夹? 解决方案: (1)选中项目,右键单击,如图所示选择:Build Path --> ...

  10. dapper使用时性能优化

    数据库中类型 Area 数据库类型 varchar dapper 来操作数据库,不能直接写 sql      Area=@Area)   //dapper 对C#中的字符串类型 默认是对应数据库nva ...