nginx——location匹配流程图

location匹配流程图

 


location理解

1.收到url请求后,nginx首先进行精确匹配(有“=”的为精确匹配),如果匹配成功,则直接返回精确匹配结果,如果没有命中则会继续向下进行普通匹配

2.普通匹配分为三种情况

(1)没有命中,继续向下执行正则匹配

(2)命中单个普通匹配,记忆匹配结果,不会立即返回,会继续匹配正则规则

(3)命中多个普通匹配,记忆最长匹配的结果,不会立即返回,会继续匹配正则规则

3.依次匹配正则匹配,匹配结果也分为三种

(1)命中正则匹配,直接反馈正则匹配的结果

(2)没有命中正则匹配,则会返回普通匹配最长的结果(最长指的是虚拟路径的长度,例如 location  /a和location /aaa   则会匹配匹配/location /aaa)

可以理解为location匹配的优先级,    精确匹配 > 正则匹配 > 普通匹配

4.nginx反向代理配置location后报错404

(1)location /boss {....}  这种情况需要保证你的项目目录为boss。假如你的项目目录为根,例如使用http:127.0.0.1:8100就可以访问,则配置如下

location = /app {
       proxy_pass            http://10.10.10.31:8100/;
 }

##端口后面的“/”是重点,
上述配置例如访问 http:/0.0.0.0/app   就会转到 http://10.10.10.31:8100/
location = /app {
       proxy_pass            http://10.10.10.31:8100;
 }
##假如后面没有"/",上述案例访问http://0.0.0.0/app,则会转发到http://10.10.10.31:8100/app

 

posted @ 2018-11-26 17:36  什么都不会的小郭  阅读(1158)  评论(0编辑  收藏  举报