• nginx的rewrite


    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,实现了三级域名跳转

  • 相关阅读:
    【转】Android 6.0 Marsmallow BLE : Connection Parameters
    过滤掉字符串中重复的字符
    从第一个汉字开始分割字符串
    根据年月生成日历函数
    计算两个日期之间的工作日
    根据日期返回星座
    检查给定串是否存在于由区间及点集的结合内
    将整型数字转换为大写汉字
    向左填充指定字符串
    人民币小写金额转大写
  • 原文地址:https://www.cnblogs.com/hanfei-1005/p/5696863.html
Copyright © 2020-2023  润新知