1.nginx的proxy_pass配置路径,加与不加“/”差异巨大
1.1 等价写法
location /proxy {
proxy_pass http://192.168.137.181:8080;
}
当访问 http://127.0.0.1/proxy/test/test.txt时,nginx匹配到/proxy路径,把请求转发给192.168.137.181:8080服务,实际请求路径为http://10.0.0.1:8080/test/test.txt,nginx会去掉匹配的“/proxy”。
#等价于
location /proxy {
proxy_pass http://192.168.137.181:8080/proxy/;
}
#或者等价于1.3
1.2 相对路径
location /proxy {
proxy_pass http://10.0.0.1:8080;
}
当访问 http://127.0.0.1/proxy/test/test.txt时,nginx匹配到/proxy路径,把请求转发给192.168.137.181:8080服务,实际请求代理服务器的路径为http://192.168.137.181:8080/proxy/test/test.txt, 此时nginx会把匹配的“/proxy”也代理给代理服务器。
1.3代理路径添加uri(1.1的变种写法)
location /proxy {
proxy_pass http://10.0.0.1:8080/static01/;
}
当访问 http://127.0.0.1/proxy/test/test.txt时,nginx匹配到/proxy路径,把请求转发给192.168.137.181:8080服务,实际请求代理服务器的路径为http://10.0.0.1:8080/static01/test/test.txt。
总结:proxy_pass末尾加 /,代理的时候不会把location匹配的地址带上,如果末尾不加 / 则会加上location匹配的地址
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。