我的 nginx 代理传递配置设置如下:
location /try-me {
proxy_pass https://some-domain.com?id=true&zone=false
}
这很好。但问题是,当有人从浏览器尝试
https://mywebsite.com/try-me?ping=true&foo=bar
proxy_pass 之后创建的最终 URL 是:
https://some-domain.com?id=true&zone=false?ping=true&foo=bar
查询参数格式完全不正确。如何确保 Nginx附加以以下方式转发的任何查询参数:
id=true&zone=false&ping=true&foo=bar
答案1
使用它可能会rewrite...break
比尝试proxy_pass
正确地做它更好。
例如:
location /try-me {
rewrite ^ /?id=true&zone=false break;
proxy_pass https://some-domain.com;
}
该rewrite
指令将正确附加原始参数。请参阅这个文件了解详情。
在上面的例子中,任何以 开头的 URI 都将被使用调整后的查询字符串/try-me
重写为。/