http://dmouse.iteye.com/blog/1880474
nginx配置proxy_pass,需要注意轉發的路徑配置
1、location /test/ {
proxy_pass http://t6:8300;
}
2、location /test/ {
proxy_pass http://t6:8300/;
}
上面兩種配置,區別只在於proxy_pass轉發的路徑后是否帶 “/”
針對情況2,如果訪問url = http://server/test/test.jsp,則被nginx代理后,請求路徑會變為 http://proxy_pass/test.jsp,直接訪問server的根資源
針對情況1,如果訪問url = http://server/test/test.jsp,則被nginx代理后,請求路徑會便問http://proxy_pass/test/test.jsp,將test/ 作為根路徑,請求test/路徑下的資源
典型實例:
同一個域名下,根據根路徑的不同,訪問不同應用及資源
例如:A應用 http://server/a ; B應用 http://server/b
A 應用和 B應用共同使用訪問域名 http://server;
配置nginx代理轉發時,如果采用情況2的配置方式,則會導致訪問http://server/a/test.jsp時,代理到http://proxy_pass/test.jsp,導致無法訪問到正確的資源,頁面中如果有對根資源的訪問,也都會以http://server 做為根路徑訪問資源,導致資源失效
針對此類情況,需要采用情況1,分別針對不用應用,設置不同的根資源路徑,並保證代理后的根路徑也依然有效
