问题描述
该笔记将记录:与 proxy_pass 有关的常见问题,以及使用配置
解决方案
使用方法可以参考 Module ngx_http_proxy_module / proxy_pass 文档
location /some/path/ {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
场景:通过不同的 URI 进行反向代理
Module ngx_http_proxy_module / proxy_pass How to remove the path with an nginx proxy_pass – Server Fault How can query string parameters be forwarded through a proxy_pass with nginx? – Stack Overflow
问题描述
1)访问 http://example.com/a/foo/auth 地址,则反向代理到 http://127.0.0.1:8443/foo/auth 地址 1)访问 http://example.com/b/foo/auth 地址,则反向代理到 http://127.0.0.1:8993/foo/auth 地址
解决方法
server {
listen 80;
server_name example.com;
location /a/ {
# 注意,一定要使用 http://127.0.0.1:8443/ 而不是 http://127.0.0.1:8443,否则 传递的 URL 将携带 /a/ 前缀
# 参考文档对 proxy_pass 的描述(是否携带 URI 的区别)
proxy_pass http://127.0.0.1:8443/;
# 传递请求头(默认)
proxy_pass_r[……]