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。