Por favor, leia esta questão de falha de servidor em problema de balanceamento de carga nginx com 301 de backend . Um pouco semelhante ao meu problema, mas a resposta não funciona. O Nginx está redirecionando para o "nome" do meu upstream. O ponto é que essa não é uma pergunta específica do OpenShift.
Eu configurei o nginx 1.4.4 corretamente (construído a partir da fonte, verifiquei se ele funciona corretamente [1]) em uma engrenagem DIY sem escala com OPENSHIFT_DIY_IP 127.8.143.129. Vamos chamá-lo de A. Eu configurei um servidor Tornado no equipamento e outro Tornado em outro equipamento sem escala. (Suponha que uma caixa de engrenagem = red hat linux na mesma LAN atrás de NAT, simplificada) Ambas são simples aplicações hello-world baseadas no openshift-hellotornado repo . Vamos chamar isso de endereço DNS do B. 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. Estranho.
[1]: Prova de que o nginx funciona com apenas 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 "Hello world! ". 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).
Passei meio dia nisso, cansado de tentar configurar isso. Eu tentei a solução dada na postagem do servidor acima mencionada, substituindo o meu bloco de localização com:
location / { 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. Saída de log de amostra começando da 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, like Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:55 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ" AAA.BBB.CCC.DDD - - [22/Dec/2013:14:53:56 -0500] "GET /app HTTP/1.1" 302 331 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" "WWW.XXX.YYY.ZZZ"
Alguma idéia de como eu posso ter uma vida balanceada de carga normal com o nginx?
Link para o nginx.conf: link