Nginx服务的重写模块(理论详解)

  

重写跳转场景

  
      <李> URL看起来更规范,合理,李   <李>企业会将动态URL地址伪装成静态地址提供服务,李   <李>网址换新域名后,让旧的访问跳转到新的域名上,李   <李>服务端某些业务调整。   
  

重写跳转实现

  

 Nginx服务的重写模块(理论详解)

  

重写实用场景

  

Nginx跳转需求的实现方式

  
      <李>使用重写进行匹配跳转李   <李>使用如果匹配全局变量后跳转李   <李>使用位置匹配再跳转李   
  

重写放在服务器{},{},{}位置段中

  

对域名或参数字符串

  
      <李>使用如果全局变量匹配李   <李>使用proxy_pass反向代理李   
  

常用的正则表达式元字符

           字符   说明               ^   匹配输入字符串的起始位置         $   匹配输入字符串的结束位置         *   匹配前面的字符零次或多次         +   匹配前面的字符一次或多次         吗?   匹配前面的字符零次或一次         .   匹配除\ n之外的任何单个字符,使用诸如“[。\ n]“之类的模式,可匹配包括“\ n"在内的任意字符         \ d   匹配纯数字[0 - 9]         {n}   重复多次         {n}   重复n次或更多次         [c]   匹配单个字符c         的[a -?]   匹配所有小写字母的任意一个         (a-zA-Z)   ]匹配所有小写字母或所有大写字母的任意一个            

重写命令

  

语法:

  
 <代码>重写& lt; regex>& lt; replacement>【国旗】;
  正则跳转后的内容重写支持的国旗标记 
  

国旗标记说明

           标记   说明               最后的   相当于Apache的[L]标记,表示完成重写         打破   本条规则匹配完成即终止,不再匹配后面的任何规则         重定向   302年返回临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL         永久   301年返回永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新URL            

最后和打破比较

              最后的   打破               使用场景   一般写在服务器和中   一般使用在位置中         URL匹配   不终止重写后的url匹配   终止重写后的url匹配            

位置分类

  
 <代码>位置=型{}[精准匹配)
  位置型{}[一般匹配)
  位置~型{}[正则匹配) 
  

正则匹配的常用表达式

           标记   说明               ~   执行一个正则匹配,区分大小写         ~ *   执行一个正则匹配,不区分大小写         ! ~   执行一个正则匹配,区分大小写不匹配         ! ~ *   执行一个正则匹配,不区分大小写不匹配         ^ ~   普通字符匹配;使用前缀匹配。如果匹配成功,则不再匹配其他的位置=普通字符精准匹配。也就是完全匹配         @   定义一个命名的位置,使用在内部定向时            

位置优先级

  

<强>相同类型的表达式,字符创长的会优先匹配
<强>按优先级排列

  
      <李>=类型李   <李> ^ ~类型表达式李   <李>正则表达式(~和~ *)类型李   <李>常规字符串匹配类型,按前缀匹配李   <李>通常匹配(/),如果没有其他匹配,任何请求都会匹配到李   
  

比较重写和位置/h4>   

<强>相同点
都能实现跳转
<强>不同点

  
      <李>改写是在同一域名内更改获取资源的路径李   <李>位置是对一类路径做控制访问或方向代理,还可以proxy_pass到其他机器
    <强>写会写在位置里执行顺序   <李>执行服务器块里面的重写指令李   <李>执行位置匹配李   <李>执行选定的位置中的重写指令李

    Nginx服务的重写模块(理论详解)