當proxy_pass url最後加上了/ 相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走; 如果沒有/,則會把匹配的路徑部分也給代理走.舉例如下:
假設請求url: http://www.test.com/static/js/us.js
location ^~ /static/
{
proxy_pass http://192.168.1.11:8081/;
}
不帶location中的東西,代理實際URL爲 http://192.168.1.11:8081/js/us.js
location ^~ /static/
{
proxy_pass http://192.168.1.11:8081;
}
帶location中的東西,代理實際URL爲 http://192.168.1.11:8081/static/js/us.js
#############################################################################################
proxy_pass到域名注意事項
#############################################################################################
如果proxy_pass是直接指向的域名,nginx在啓動的時候會緩存域名解析的IP。此時修改域名解析的IP,那麼nginx默認將不會解析到新IP上除非reload纔會生效。改換成如下配置則更換IP解析後nginx會自動重新查詢域名解析。
resolver 8.8.8.8 8.8.4.4 valid=60s;
set $url "http://abc.test.com";
proxy_pass $url;
參考:http://www.cnblogs.com/kevingrace/p/6566119.html