Atualmente, temos um servidor da web Apache2 atuando como balanceador de carga para nossa arquitetura da web. Os backends são máquinas virtuais Xen acessíveis via IPv6 para a Internet pública e via IPv4 para nossa VPN. O problema é que o balanceador de carga do Apache 2 não funciona tão bem quanto gostaríamos, então estamos mudando para o nginx.
A versão do nginx instalada é a 1.3.10, que foi compilada com as opções padrão do Debian. Nós tivemos que ir para esta versão, porque era o único que suporta backends IPv6, que é um requisito para essas VMs. No momento, o nginx tem apenas um "host virtual" ou bloco de servidor e é o seguinte.
upstream backend-cookissime-prod {
server cookissime-prod.cookissime1.vm.cob:80 max_fails=5;
server cookissime-prod.cookissime2.vm.cob:80 max_fails=5;
}
server {
listen 37.59.6.220:80;
# listen [::]:80;
server_name www.cookissime.fr;
access_log /var/log/nginx/cookissime-prod.log;
error_log /var/log/nginx/cookissime-prod.log;
## send request back to apache1 ##
location / {
proxy_pass http://backend-cookissime-prod;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream backend-cookissime-dev {
server cookissime-dev.cookissime1.vm.cob:80 max_fails=5;
server cookissime-dev.cookissime2.vm.cob:80 max_fails=5;
}
Existe também um segundo bloco de código que pega as informações acima e substitui prod por dev. Os nomes de domínio cookissime-prod.cookissime1.vm.cob e cookissime-prod.cookissime2.vm.cob são resolvidos para um IPv6 em nosso DNS interno.
A configuração acima parece ser boa em termos de sintaxe. O problema é que na maioria das vezes, essa configuração exibe a página padrão "Bem-vindo ao nginx", mas esporadicamente exibirá o site por alguns minutos e retornará à página padrão.
Esta configuração funciona corretamente com o Apache2, portanto as máquinas virtuais são funcionais.
O que estou perdendo? O que poderia causar esses problemas?
Tags nginx reverse-proxy