我知道,nginx可以配置为充当负载均衡器,但我想知道是否有可能在代理之间进行负载平衡?比方说,我有多个在本地主机上运行的代理,并且我想使用nginx提供单个连接点,以便我可以在代理之间轮换。我正在尝试实现类似于here的后续操作,该操作使用HAProxy而不是nginx。我有以下nginx.conf
:如何配置nginx充当代理的负载均衡器?
events { }
http {
upstream proxies {
server localhost:9998;
server localhost:9999;
server localhost:10000;
}
server {
listen 8080;
location/{
proxy_pass http://proxies;
}
}
}
然而,当我发送一个卷曲的请求是这样的:
curl http://icanhazip.com -x localhost:8080
它忽略了网址,我也得到类似的东西,如果我有我期望的回应直接发送一个请求,像这样的代理服务器之一:
curl localhost:9999
当然,我真的没有想到它的工作,因为必须有一些选项来告诉nginx的治疗UPS tream服务器作为代理本身。但是,在线搜索后,我无法找到如何做到这一点。
我不确定你的问题,你的问题是什么,你叫什么叫代理 - 因为你在这里你的nginx负载均衡也是一个反向代理 - ?你的问题是你有没有主机头?尝试在proxy_pass指令之后添加'proxy_set_header Host $ host;'。 – regilero
我正在尝试使用nginx在我设置的多个代理之间轮换。换句话说,我希望能够作为代理连接到nginx主机和端口(即localhost:8080),并且它将在我设置的代理之间旋转 –
好了,您是否尝试过主机的东西?因为反向代理几乎是透明的,所以nobdy会关心被代理的后端是最终服务器还是一些代理,但是您需要知道您正在动态转发到代理的域是什么。 – regilero