在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。 下面列出4种情况,分别用http://218.75.108.154/proxy/info 进行访问。
upstream mobile{
server 172.16.10.172:8081;
}
第一种:
location /proxy {
proxy_pass http://mobile/;
}
该情况会被代理到 http://172.16.10.172:8081/info;
第二种:
location /proxy {
proxy_pass http://mobile;
}
该情况会被代理到 http://172.16.10.172:8081/proxy/info;
第三种:
location /proxy {
proxy_pass http://mobile/mobile-web/;
}
该情况会被代理到 http://172.16.10.172:8081/mobile-web/info;
第四种:
location /proxy {
proxy_pass http://mobile/mobile-web;
}
该情况会被代理到 http://172.16.10.172:8081/mobile-webinfo;
从结果可以看出,应该说分为两种情况才正确。即http://172.16.10.172:8081(上面的第二种) 这种和 http://172.16.10.172:8081(上面的第1,3,4种) 这种。