我知道,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