Nginx
使用特定源 ip 的 nginx 作為代理
我正在使用 nginx 為某些 Tomcat 實例提供靜態文件和代理其他請求。問題是我不知道如何選擇 nginx 使用哪個 IP 地址連接到 Tomcat。
每個 Tomcat 實例只接受來自特定 IP 地址的 HTTP 連接。我的伺服器擁有所有這些 IP。我只是無法選擇 nginx 使用哪一個。
這是我的配置文件:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; location /integracao/ { proxy_pass http://X.X.X.X:9080/integracao/; } location /solr/ { proxy_pass http://Y.Y.Y.Y:8080/solr/; }
我的伺服器有一個介面,有兩個 IP 地址:A 和 B。我需要使用 IP A 連接到第一個 Tomcat,使用 IP B 連接到 Solr。
有誰知道該怎麼做?
proxy_bind 指令允許您選擇不同的源 IP 地址。
http://wiki.nginx.org/HttpProxyModule#proxy_bind
所以你的配置看起來像:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; location /integracao/ { proxy_bind A.A.A.A; proxy_pass http://X.X.X.X:9080/integracao/; } location /solr/ { proxy_bind B.B.B.B; proxy_pass http://Y.Y.Y.Y:8080/solr/; }