location /abc/c/ {
proxy_pass http://a.com;
}
location /abc/c/ {
proxy_pass http://a.com/;
}
上面两种配置,区别只在于proxy_pass转发的路径后是否带 “/”。
针对情况1,如果访问http://server/abc/c/test.jsp,则被nginx代理后,请求路径是:http://a.com/abc/c/test.jsp。
针对情况2,如果访问url = http://server/abc/c/test.jsp,则被nginx代理后,请求路径会变为 http://a.com/test.jsp,直接访问server的根资源。
其实根据文档描述,如果配置proxy_pass使用的是一个URL地址,则匹配部分会被替换成server的URL。如
location /abc/c/ {
proxy_pass http://a.com/000;
}
则请求http://server/abc/c/test.jsp,则被nginx代理后,请求路径会变为 http://a.com/000test.jsp。
本文探讨了Nginx中proxy_pass指令配置路径结尾斜杠的影响。在两种配置下,请求路径被代理到目标服务器时的行为不同。一种情况下保留了原始路径,另一种则将路径替换为根目录。

被折叠的 条评论
为什么被折叠?



