Ich verwende nginx, um statische Datei- und Proxy-Anforderungen an eine Tomcat-Instanz zu senden. Das Problem ist, dass ich nicht weiß, wie ich auswählen soll, welche IP-Adresse nginx verwendet, um eine Verbindung zu Tomcat herzustellen.
Jede Tomcat-Instanz akzeptiert nur HTTP-Verbindungen von bestimmten IP-Adressen. Mein Server hat alle diese IPs. Ich kann mich einfach nicht entscheiden, welches Nginx verwendet.
Dies ist meine Konfigurationsdatei:
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/;
}
Mein Server verfügt über eine Schnittstelle mit zwei IP-Adressen: A und B. Ich muss IP A verwenden, um eine Verbindung zu Tomcat herzustellen, und IP B, um eine Verbindung zu Solr herzustellen.
Weiß jemand, wie es geht?
quelle
Wenn Nginx dies nicht kann, können Sie immer Netfilter und SNAT verwenden, um den Eindruck zu erwecken, dass Nginx eine bestimmte IP-Adresse verwendet hat:
quelle
Beim Durchsuchen des Nginx- Wikis und insbesondere des Teils über ProxyModule habe ich nichts Ähnliches gefunden .
Wenn Sie die Möglichkeit haben, ein wenig zu experimentieren, würde ich vorschlagen, dass Sie verschiedene Werte in der
listen
Direktive ausprobieren und die Zugriffsprotokolle auf Ihrem Backend-Server überprüfen, um festzustellen, von welcher IP-Adresse nginx stammt.quelle