一文弄懂nginx的 location、proxy_pass 最后到底要不要带 “/”

先给出结果

(1)^~开头是前缀匹配,location后面加 / 也是前缀匹配,只不过匹配范围比不加 / 要小
(2)proxy_pass 端口后面没有 / ,则会将 location 及其后缀的内容完全拼接到 proxy_pass 所配置的地址后
(3)proxy_pass 端口后面有 /,则仅会将 location 的后缀拼接到 proxy_pass 所配置的地址后

localtion后面需要带“/”吗

这完全取决于你想怎么匹配

下面这种可以匹配 /creativity/writing/api 也就是 /creativity/writing + 任何后缀
location ^~ /creativity/writing {
        proxy_pass http://192.168.1.124:8080;
    }
    
下面这种也可以匹配 /creativity/writing/api 但是范围较上面要小一些,也就是也就是 /creativity/writing/ + 任何后缀
location ^~ /creativity/writing/ {
        proxy_pass http://192.168.1.124:8080;
    }

proxy_pass 后面需要带“/”吗

location ^~ /creativity/writing {
        proxy_pass http://192.168.1.124:8080;
    }
请求地址:http://192.168.1.123/creativity/writing/article
分析:8080后面不带任何 / 直接拼接location及后缀/article
最终 proxy_pass: http://192.168.1.124:8080/creativity/writing/article

location ^~ /creativity/writing {
        proxy_pass http://192.168.1.124:8080/writing/an;
    }
请求地址:http://192.168.1.123/creativity/writing/article
分析:8080后面带 / 直接拼接localtion的后缀/article
最终 proxy_pass: http://192.168.1.124:8080/writing/an/article

location ^~ /creativity/writing {
        proxy_pass http://192.168.1.124:8080/;

    }
请求地址:http://192.168.1.123/creativity/writingarticle
分析:8080后面带 / 直接拼接localtion的后缀 article
最终 proxy_pass: http://192.168.1.124:8080/article

location ^~ /creativity/writing {
        proxy_pass http://192.168.1.124:8080/;

    }
请求地址:http://192.168.1.123/creativity/writing/article
分析:8080后面带 / 直接拼接localtion的后缀 /article
最终 proxy_pass: http://192.168.1.124:8080//article(请仔细看这里有两个//结合结论去分析第一个/是请求地址 article 前面的/,第二个/是8080后面的/)
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值