O balanceamento de carga Nginx redireciona para o "nome" upstream

O balanceamento de carga Nginx redireciona para o "nome" upstream

Introdução:

Por favor, leia esta pergunta sobre falha no servidor emproblema de balanceamento de carga nginx com 301 do backend. Um pouco semelhante ao meu problema, mas a resposta não funciona. O Nginx está redirecionando para o "nome" do meu upstream. A questão é que esta não é uma questão específica do OpenShift.


Configuração:

Eu configurei o nginx 1.4.4 corretamente (construído a partir do código-fonte, verifiquei que funciona corretamente [1]) em um equipamento DIY sem escala com OPENSHIFT_DIY_IP 127.8.143.129. Vamos chamá-lo de A. Eu configurei um servidor Tornado nesse equipamento e outro Tornado em outro equipamento sem escala. (Suponha que uma caixa gear = red hat linux na mesma LAN atrás de NAT, simplificada) Ambos são aplicativos simples de hello-world baseados norepositório openshift-hellotornado. Vamos chamar isso de B. O endereço DNS de B é pam-picaxe.rhcloud.com. O endereço DNS de A é main-picaxe.rhcloud.com.

Sempre que estou navegando para main-picaxe.rhcloud.com, o navegador é redirecionado com um 302 Encontrado com

Location: https://frontends/app.

"frontends" aqui é o nome do upstream na configuração do nginx. Esquisito.

[1]: Prova de que o nginx funciona apenas com o equipamento A: Se eu comentar a linha 20 e descomentar a linha 21 no arquivo de configuração (link pastebin no final do post), tudo funciona bem e recebo um "Olá, mundo!". mas sempre que tenho um caso como a linha 20 (mesmo que seja o endereço DNS da engrenagem A em vez da engrenagem B).

Tentei uma solução:

Passei meio dia nisso, cansado de tentar configurar isso. Tentei a solução fornecida na postagem de serverfault acima mencionada, substituindo meu bloco de localização por:

localização / {
            proxy_pass http://frontends;
            proxy_set_header Host $host;
            proxy_redirect http://frontends http://$host:$server_port/;
            proxy_redirect http://frontends:8080/ http://$host:$server_port/;
}

Isso resulta em um loop de redirecionamento. Exemplo de saída de log começando na primeira solicitação para /:

AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:53 -0500] "GET / HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 ( KHTML, como Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
AAA.BBB.CCC.DDD - - [22/Dez/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, como Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
AAA.BBB.CCC.DDD - - [22/Dez/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, como Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
AAA.BBB.CCC.DDD - - [22/Dez/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, como Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
AAA.BBB.CCC.DDD - - [22/dez/2013:14:53:56 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, como Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"

Alguma idéia de como posso ter uma vida normal com balanceamento de carga com o nginx?

Link para nginx.conf:http://pastebin.com/91CMftSc

informação relacionada