1. proxy_pass配置說明
不帶/
代碼如下:
location /test/
{
proxy_pass http://t6:8300;
}
帶/
代碼如下:
location /test/
{
proxy_pass http://t6:8300/;
}
上面兩種配置,區別只在于proxy_pass轉發的路徑后是否帶 “/”
針對情況1,如果訪問url = http://server/test/test.jsp,則被nginx代理后,請求路徑會便問http://proxy_pass/test/test.jsp,將test/ 作為根路徑,請求test/路徑下的資源
針對情況2,如果訪問url = http://server/test/test.jsp,則被nginx代理后,請求路徑會變為 http://proxy_pass/test.jsp,直接訪問server的根資源
2. 典型實例
同一個域名下,根據根路徑的不同,訪問不同應用及資源
例如: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,分別針對不用應用,設置不同的根資源路徑,并保證代理后的根路徑也依然有效
新聞熱點
疑難解答