关于Nginx配置文件中的斜线(/)问题
suichentree 2/14/2023 Nginx
[toc]
# 关于Nginx配置文件中的斜线(/)问题
在nginx配置文件中 location 和 proxy_pass加不加斜线/,最终的效果是不一样的。
比如说,前端服务访问URL地址是:
http://localhost:8080/elecapi/test/home/getInfo
,根据关键词elecapi实现请求转发到后台接口
- location不加斜线、proxy_pass不加斜线
location /elecapi {
proxy_pass http://192.168.0.1:13314;
}
实际访问地址:http://192.168.0.1:13314/elecapi/test/home/getInfo
1
2
3
4
2
3
4
- location加斜线、proxy_pass不加斜线
location /elecapi/ {
proxy_pass http://192.168.0.1:13314;
}
实际访问地址:http://192.168.0.1:13314/elecapi/test/home/getInfo
1
2
3
4
2
3
4
- location不加斜线、proxy_pass加斜线
location /elecapi {
proxy_pass http://192.168.0.1:13314/;
}
实际访问地址:http://192.168.0.1:13314/test/home/getInfo
1
2
3
4
2
3
4
- location加斜线、proxy_pass加斜线
location /elecapi/ {
proxy_pass http://192.168.0.1:13314/;
}
实际访问地址:http://192.168.0.1:13314/test/home/getInfo
1
2
3
4
2
3
4
总结:
- 当proxy_pass 转发地址最后一个字符不是斜线/的时候。最终地址 = 转发地址 + localtion部分 + 访问URL地址(去除localtion部分)
- 当proxy_pass 转发地址最后一个字符是斜线/的时候。最终的地址 = 转发地址 + 访问URL地址(去除localtion部分)
- 通俗的讲,当加上斜线/的时候,最终的转发地址会去除localtion部分。 PS;本示例中的localtion部分为 /elecapi。访问URL地址为/test/home/getInfo