nginx proxy_pass 指令结尾加不加/的区别
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