Eu tenho alguns problemas com nginx e servidores.
Aqui está minha primeira configuração:
server {
listen 80;
server_name *.example.com;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:8000/;
}
}
Em seguida, o proxy passa para outro servidor nginx ouvindo na porta 8000 tudo correspondido pelo curinga *.example.com
.
O próximo servidor tem algumas configurações que são geradas automaticamente. Parece assim:
upstream upstream_project1 {
server 172.18.0.5:8069;
}
server {
listen 80;
server_name project1.example.com;
location / {
proxy_redirect off;
proxy_pass http://upstream_project_1;
}
}
e
upstream upstream_project2 {
server 172.18.0.6:8069;
}
server {
listen 80;
server_name project2.example.com;
location / {
proxy_redirect off;
proxy_pass http://upstream_project_2;
}
}
Em seguida, a solicitação é transmitida pelo proxy para o servidor de aplicativos em execução de acordo com o fluxo ascendente definido em cada configuração.
O problema que tenho é se eu tenho alguns projetos e cada projeto tem diferentes IPs / hostname. A solicitação parece passar apenas pela primeira configuração.
Parece que o primeiro proxy envia a solicitação e configura os cabeçalhos adequadamente; meu servidor de aplicativos reage, pois está proxieded corretamente.
O problema é que ele proxy o servidor de aplicativos errado.
Além disso, se eu matar o servidor de aplicativos, que ele corresponda primeiro, ele usará um diferente como se estivesse voltando para um servidor "padrão".