Nginx Reverse Proxy Path
假设服务器域名为vaakian.com
,访问uri
为http://vaakian.com/api/user
,对比以下反向代理的效果。
1. 结尾都不打斜杠/
location /api {
proxy_pass http://127.0.0.1:8080
}
反代结果
http://127.0.0.1:8080/api/user
2. location 打斜杠,proxy_pass 不打
location /api/ {
proxy_pass http://127.0.0.1:8080
}
反代结果
http://127.0.0.1:8080/api/user
所以,如果 proxy_pass 不打斜杠,那么实际访问的路由部分是原封不动的拼接的。
2. location 不打,proxy_pass 打斜杠
location /api {
proxy_pass http://127.0.0.1:8080/
}
反代结果,
http://127.0.0.1:8080//user
2. location 和 proxy_pass 都打斜杠
location /api/ {
proxy_pass http://127.0.0.1:8080/
}
反代结果,
http://127.0.0.1:8080/user
所以,proxy_pass 打斜杠时实际匹配到的 location 会被清楚掉。