所以,我有一个第三方代理(可能是基于squid),它只会接受来自我的一个IP的连接,但我需要能够从多个IP访问它。
因此,我正在尝试使用nginx将请求转发到这个代理。我知道nginx可以像这样转发请求:
location / {
proxy_pass http://$http_host$uri$is_args$args;
}
如果我需要nginx直接将请求转发到目标站点,那么这个方法可行,但我需要先将其传递给代理X。我尝试了以下方法:
upstream myproxy {
server X.X.X.X:8080;
}
location / {
proxy_pass http://myproxy$uri$is_args$args; // also tried: http://myproxy$http_host$uri$is_args$args
}
但我收到了“(104)连接被对等方重置”的错误。我猜想是因为nginx像这样进行代理:
GET /index.html HTTP/1.1
Host: www.targetdomain.com.br
但是我需要它像这样代理:
GET http://www.targetdomain.com.br/index.html HTTP/1.1
if
和set
等进行匹配(请参见我的答案底部的链接)。 - Silex