nginx proxy | 您所在的位置:网站首页 › nginx拦截请求转发 › nginx proxy |
在nginx中配置proxy_pass时,当在后面的url加上了/ 相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/ 则会把匹配的路径部分也给代理走。举例如下: 首先是location进行的是模糊匹配 1)没有“/”时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等 2)而有“/”时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求 假设请求url: http://www.test.com/static/js/us.js 第一种: location /static/ { proxy_pass http://192.168.1.11:8081/; } 结论:会被代理到http://192.168.1.11:8081/js/us.js这个url 第二种(相对于第一种,最后少一个 /): location /static/ { proxy_pass http://192.168.1.11:8081; } 结论:会被代理到http://192.168.1.11:8081/static/js/us.js这个url 第三种: location /static/ { proxy_pass http://192.168.1.11:8081/web/; } 结论:会被代理到http://192.168.1.11:8081/web/js/us.js这个url。 第四种(相对于第三种,最后少一个 / ): location /static/ { proxy_pass http://192.168.1.11:8081/web; } 结论:会被代理到http://192.168.1.11:8081/webjs/us.js这个url ##################################################################################### 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 |
CopyRight 2018-2019 实验室设备网 版权所有 |