nginx配置proxy_pass中url末尾带/与不带/的区别详解

时间:2021-05-02

nginx配置proxy_pass时url末尾带“/”与不带“/”的区别如下:

注意:当location为正则表达式匹配模式时,proxy_pass中的url末尾是不允许有"/"的,因此正则表达式匹配模式不在讨论范围内。

proxy_pass配置中url末尾带/时,nginx转发时,会将原uri去除location匹配表达式后的内容拼接在proxy_pass中url之后。

测试地址:http://192.168.171.129/test/tes.jsp

场景一:

? 1 2 3 location ^~ /test/ { proxy_pass http://192.168.171.129:8080/server/; }

代理后实际访问地址:http://192.168.171.129:8080/server/tes.jsp

场景二:

? 1 2 3 location ^~ /test { proxy_pass http://192.168.171.129:8080/server/; }

代理后实际访问地址:http://192.168.171.129:8080/server//tes.jsp

场景三:

? 1 2 3 location ^~ /test/ { proxy_pass http://192.168.171.129:8080/; }

代理后实际访问地址:http://192.168.171.129:8080/tes.jsp

场景四:

? 1 2 3 location ^~ /test { proxy_pass http://192.168.171.129:8080/; }

代理后实际访问地址:http://192.168.171.129:8080//tes.jsp

proxy_pass配置中url末尾不带/时,如url中不包含path,则直接将原uri拼接在proxy_pass中url之后;如url中包含path,则将原uri去除location匹配表达式后的内容拼接在proxy_pass中的url之后。

测试地址:http://192.168.171.129/test/tes.jsp

场景一:

? 1 2 3 location ^~ /test/{ proxy_pass http://192.168.171.129:8080/server; }

代理后实际访问地址:http://192.168.171.129:8080/servertes.jsp

场景二:

? 1 2 3 location ^~ /test { proxy_pass http://192.168.171.129:8080/server; }

代理后实际访问地址:http://192.168.171.129:8080/server/tes.jsp

场景三:

? 1 2 3 location ^~ /test/ { proxy_pass http://192.168.171.129:8080; }

代理后实际访问地址:http://192.168.171.129:8080/test/tes.jsp

场景四:

? 1 2 3 location ^~ /test { proxy_pass http://192.168.171.129:8080; }

代理后实际访问地址:http://192.168.171.129:8080/test/tes.jsp

到此这篇关于nginx配置proxy_pass中url末尾带/与不带/的区别详解的文章就介绍到这了,更多相关nginx proxy_pass url末尾内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/zhanghui200920061988/article/details/105132167

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章