O balanceamento de carga Nginx redireciona para upstream “name”

1

Introdução:

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.

Configuração:

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).

Tentei uma solução:

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

    
por Nilesh 22.12.2013 / 21:52

0 respostas