【发布时间】:2018-03-15 04:09:53
【问题描述】:
我正在使用 Nginx 并尝试使用 proxy_pass 重定向到作为查询字符串提供的 URL。我还想避免将任何其他参数传递给该 URL。
这是我发送给代理的网址: http://10.10.10.10/proxydownload?url=http://www.test.com/d/guid/download&session=123
这是我在 nginx.conf 中的内容:
location /proxydownload {
proxy_pass $arg_url;
}
但是,这会产生 502 错误,我不知道为什么。根据日志,$arg_url 包含“http://www.test.com/d/guid/download”,这就是我要访问的 url。 我尝试在 proxy_pass 中对 URL 进行硬编码,并且成功了:
location /proxydownload {
proxy_pass http://www.test.com/d/guid/download;
}
我使用 $arg_url 的方式有什么不对吗?
【问题讨论】:
-
您应该阅读this,看起来您正在尝试使用 nginx 实现 Web 代理。
-
@user3780601,这两个答案还缺少什么吗?如果不是,请接受最佳答案。如果您在宽限期的接下来几个小时内没有采取任何行动,至少一半的赏金将不可挽回地损失。
标签: nginx query-string proxypass