Estou usando o nginx para atender a pedidos estáticos de arquivo e proxy para outras instâncias do Tomcat. O problema é que não sei como escolher qual endereço IP o nginx usará para conectar-se ao Tomcat.
Cada instância do Tomcat aceita apenas conexões HTTP de endereços IP específicos. Meu servidor tem todos esses IPs. Eu simplesmente não posso escolher qual deles usará o nginx.
Este é o meu arquivo de configuração:
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/;
}
Meu servidor possui uma interface com dois endereços IP: A e B. Preciso usar o IP A para conectar ao primeiro Tomcat e o IP B para conectar ao Solr.
Alguém sabe como fazer isso?
fonte
se o nginx não puder fazer isso, você sempre poderá usar o netfilter e o SNAT para fazer parecer que o nginx estava usando ip específico:
fonte
Pesquisando no wiki do nginx e principalmente na parte sobre o ProxyModule , não encontrei nada relacionado.
Se você tiver a possibilidade de experimentar um pouco, sugiro que tente valores diferentes na
listen
diretiva e verifique os logs de acesso no servidor de back-end para ver de onde vem o endereço IP nginx.fonte