nginx proxy ipv6

nginx proxy ipv6

在nginx中配置proxy_pass时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。

nginx的nginx.conf中文件如下所写

location  /path/ 
{ 
proxy_cache js_cache; 
--proxy_set_header Host js.test.com;
proxy_pass http://[aaaa::212:4b00:422:a3c7]/; 
}

如上面的配置,如果请求的url是http://servername/path/test.html
会被代理成http://[aaaa::212:4b00:422:a3c7]/test.html

而如果这么配置

location  /path/ 
{ 
proxy_cache js_cache; 
--proxy_set_header Host js.test.com; 
proxy_pass http://[aaaa::212:4b00:422:a3c7]; 
}

则会被代理到http://[aaaa::212:4b00:422:a3c7]/path/test.html

当然,我们可以用如下的rewrite来实现/的功能

location ^~ /static_js/ 
{ 
proxy_cache js_cache; 
--proxy_set_header Host js.test.com; 
rewrite /static_js/(.+)$ /$1 break; 
proxy_pass http://js.test.com; 
} 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注