本文主要是介绍Debug-014-nginx代理路径的一条规则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
直接上图:
今天看禹神的前端视频,讲到在nginx中代理路径的时候,有一个规则:
如果/dev和下面的proxy_pass路径最后都带‘/’,那么就是匹配到dev之后要删除dev,然后再带着后面的路径;如果/dev和下面的proxy_pass路径最后都不带‘/’,那么就是匹配到dev之后不会删除dev字段。因为我们项目也需要走nginx配置,就比较感兴趣
而我也看到有一篇文章才知道准确来讲应该这么总结:
如果proxy_pass 端口port后有斜杠/,proxy_pass不拼接location的路径
如果proxy_pass 端口port后无斜杠/,proxy_pass会拼接location的路径
避免以后忘记还是给出一些例子吧,可以加深印象:
//比如原路径是: proxy/device/abc/query//(1)会被代理到: http://127.0.0.1:81/device/abc/query
location /proxy/ {proxy_pass http://127.0.0.1:81/; (端口后有路径/)
}//(2)会被代理到: http://127.0.0.1:81/proxy/device/abc/query
location /proxy/ {proxy_pass http://127.0.0.1:81; (端口后无路径)
}//(3)会被代理到: http://127.0.0.1:81/qwer/device/abc/query
location /proxy/ {proxy_pass http://127.0.0.1:81/qwer/; (端口后有路径/qwer/)
}//(4)会被代理到: http://127.0.0.1:81/qwerdevice/abc/query
location /proxy/ {proxy_pass http://127.0.0.1:81/qwer; (proxy_pass 后虽然没有/,但是有path,也就是端口后有路径/qwer)
}//所以proxy_pass 后面的url + port后面什么也没有的时候才会带上location后面的路径
// 否则url + port后面有路径就不会带上location后面的路径补充:一般来讲proxy_pass 后面的URL应该是只写到端口,后面不再跟路径了。
这篇关于Debug-014-nginx代理路径的一条规则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!