nginx location斜杆区别

介绍

重点对proxy_pass进行分析,可以分为3种形式:

1.http://ip:port

2.http://ip:port/

3.http://ip:port/xxx

按照ip:port后是否接了字符串归为2类,"/"也是字符串,因此1归为a类,2、3归为b类

a类:后未接字符串的时候,nginx 会将原请求路径原封不动地转交给下一站 nginx

b类:后接了字符串的时候,nginx 会将 location 从 原请求路径 中剔除,再将剩余的字符串拼接到 proxy_pass 后生成 新请求路径,然后将 新请求路径 转交给下一站nginx

举例解析:

案例1:proxy_pass 的 ip:port 后接了字符串 “/var/“,因此将 location:”/test” 从 原请求路径 “/test/api” 中剔除,变为 “/api”,再将 “/api” 拼接到proxy_pass:http://192.168.1.56/var/ 后生成了 新请求路径:”http://192.168.1.56/var//api",因此下一站的nginx收到的请求就是 /var//api。

公式:/var/+(/test/api -/test)=/var//api

案例2:proxy_pass 的 ip:port 后接了字符串 “/var”,因此将 location:”/test/“ 从 原请求路径:”/test/api” 中剔除,变为”api”,再将”api”拼接到proxy_pass:http://192.168.1.56/var 后生成了新请求url:”http://192.168.1.56/varapi",因此下一站的nginx收到的请求就是 “/varapi”。

公式:/var+(/test/api -/test/)=/varapi


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!