Nginx 中 location 路径和 proxy_pass 之间的关系

1、简介

        我们平常配置 Nginx 时,通常会被 location 和 proxy_pass 后面加不加 / 而迷惑,为此本文对此进行详细说明。

2、location 的 uri 配置
2.1、location 和 proxy_pass 后面加不加 /

1)、proxy_pass 端口后面没有 / ,则会将 location 及其后缀的内容完全拼接到 proxy_pass 所配置的地址后。

2)、proxy_pass 端口后面有 /,则仅会将 location 的后缀拼接到 proxy_pass 所配置的地址后。

示例:请求地址为:http://192.168.1.1:80/test/aa/bb

location 配置的前缀proxy_pass 配置拼接后结果备注
/test/aa

proxy_pass 后加 /

例如:

http://192.168.1.1:81/test/aa/

http://192.168.1.1:81/test/aa//bb拼接的后缀为:/bb
/test/aa

proxy_pass 后不加 /

例如:

http://192.168.1.1:81

http://192.168.1.1:81/test/aa/bb拼接的后缀为全部:/test/aa/bb
/test/aa/

proxy_pass 后加 /

例如:

http://192.168.1.1:81/

http://192.168.1.1:81/bb拼接的后缀为:bb
/test/aa/

proxy_pass 后添不加 /

例如:

http://192.168.1.1:81

http://192.168.1.1:81/test/aa/bb拼接的后缀为全部:/test/aa/bb

如果请求地址为:http://192.168.1.123/test/aabb,location 为: /test/aa,后缀是:bb,proxy_pass 端口后面要加 /。

2.2、个人理解

        我们通常发送的http请求,端口号之后的为 uri,这个 uri 和 location 后面的进行匹配,多余的部分在本文中称之为后缀。如果 proxy_pass 的端口后面没有/,就在 proxy_pass 后面拼接uri;如果 proxy_pass 的端口后面有/,就拼接这个后缀。

注意:我们看的是 proxy_pass 中端口后面有没有加/,而不是结尾加没加 /。

3、总结

        本文详细介绍了 nginx 的 location  的配置规则,静态资源和代理配置加不加 / 的示例展示,掌握到此,可以基本实现 nginx 的开发使用要求。

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知其_所以然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值