!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>Nginx反向代理proxy_pass目标地址带/与不带/的区别

Nginx反向代理proxy_pass目标地址带/与不带/的区别

proxy_pass是Nginx反向代理常用的一个指令,该指令存在一个小小的细节(坑),用过此命令的可能遇到过,某些时候看似逻辑正确,但访问出现4xx5xx一类的错误。proxy_pass目标地址中末尾带/和不带/意义有所不同,下面一起来看一下。

例子

假如我访问的地址是http://domain.com/test/api,存在下面的一段反向代理配置:

location ^~ /test/ {      #目标路径带有/
      proxy_pass https://192.168.2.6/;
}

可以看到反向代理的目标地址是https://192.168.2.6/,末尾带有/当访问http://domain.com/test/api是最终会到达源站的https://192.168.2.6/api

假如目标地址是https://192.168.2.6末尾不带/,配置如下:

location ^~ /test/ {      #目标路径不带/
      proxy_pass https://192.168.2.6;
}

当访问http://domain.com/test/api时,最终请求会到达源站的https://192.168.2.6/test/api,所以两者最终去请求源站的时候路径是不同的,需要根据自身业务来判断proxy_pass目标路径是否需要带/,如果不清楚这个规则,要踩坑许久。

总结

  • proxy_pass目标路径带有/:此时location中的路径不会追加到目标路径末尾
  • proxy_pass目标路径不带/:此时location中的路径会追加到目标路径末尾再传递给源站

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

CentOS 7处理systemctl status执行慢的问题

2021-4-17 19:11:15

服务器教程

服务器安全加固_Linux配置账户锁定策略

2021-4-17 19:11:46

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase