首页 > nginx > nginx proxy_pass 指令结尾加不加/的区别

nginx proxy_pass 指令结尾加不加/的区别

2020年3月10日 发表评论 阅读评论

If it is necessary to transmit URI in the unprocessed form then directive proxy_pass should be used without URI part.

这段话的意思是如果你要保持输入的请求原样不变传给后端,那么你的proxy_pass指令就不能带有URI部分。

读起来比较晦涩,尤其是英文长句,举个实际例子:

#结尾不加/
 location /abc/ {
        proxy_pass http://10.1.12.123:8080;
 } 
#结尾添加/
location /abc/ {
        proxy_pass http://10.1.12.123:8080/;
 }

咋一看,这两个配置没什么区别。实际上最主要的区别就是proxy_pass指令后边有没有“/”,这部分内容叫做URI。

当请求是http://www.redis.com.cn/about/123时:

第一个配置处理之后传给后端应用的请求是 http://www.redis.com.cn/about/123 不变。

第二个配置会把请求 http://www.redis.com.cn/about/123 中与 location 匹配的部分("/abc/")替换为proxy_pass结尾的URI( "/" ),变成 http://www.redis.com.cn/123

分类: nginx 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.