Nginx location、proxy_pass 后有 / 与没 / 的区别
分4种情况讨论:
请求的网站为:192.168.1.1:80/static/a.html
整体配置文件如下:
1 | server { |
第一种:location后无/,转发网站无/
1 | # 192.168.1.1 -> server name |
最后网址经过nginx转向到的网址是 192.168.2.1:81/static/a.html
第二种:location后无/,转发网站有/
1 | # 192.168.1.1 -> server name |
最后网址经过nginx转向到的网址是 192.168.2.1:81/a.html
第三种:location后有/,转发网站无/
1 | # 192.168.1.1 -> server name |
最后网址经过nginx转向到的网址是 192.168.2.1:81/static/a.html
第四种:location后有/,转发网站有/
1 | # 192.168.1.1 -> server name |
最后网址经过nginx转向到的网址是 192.168.2.1:81/a.html
总结
从这四种可以看出,当nginx里面匹配时可以把端口后的参数分为path1+path2
(其中上方标注的location属于path1,proxy_pass属于path2)
当proxy_pass
里面是ip:port+/
时nginx最后匹配的网址是 proxy_pass的内容加上path2
里面是ip:port
时nginx最后匹配的网址是 proxy_pass的内容加上path1+path2
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 随心所欲录!
评论