Introducción:
Por favor lea esta pregunta sobre errores del servidor enProblema de equilibrio de carga de nginx con 301 desde el backend. Algo similar a mi problema, pero la respuesta no funciona. Nginx está redirigiendo al "nombre" de mi canal ascendente. El punto es que esta no es una pregunta específica de OpenShift.
Configuración:
Configuré nginx 1.4.4 correctamente (construido a partir de la fuente, verifiqué que funciona correctamente [1]) en un equipo de bricolaje sin escala con OPENSHIFT_DIY_IP 127.8.143.129. Llamémoslo A. Configuré un servidor Tornado en dicho equipo y otro Tornado en otro equipo sin escala. (Supongamos que una caja de Linux gear = red hat en la misma LAN detrás de NAT, simplificada) Ambas son aplicaciones simples de hola mundo basadas enrepositorio openshift-hellotornado. Llamemos a esto B. La dirección DNS de B es pam-picaxe.rhcloud.com. La dirección DNS de A es main-picaxe.rhcloud.com.
Cada vez que navego a main-picaxe.rhcloud.com, el navegador se redirige con un 302 encontrado con
Location: https://frontends/app.
"frontends" aquí es el nombre del upstream en la configuración de nginx. Extraño.
[1]: Prueba de que nginx funciona solo con el equipo A: si comento la línea 20 y descomento la línea 21 en el archivo de configuración (enlace de Pastebin al final de la publicación), todo funciona bien y obtengo un "¡Hola mundo!". pero siempre tengo un caso como el de la línea 20 (incluso si es la dirección DNS del equipo A en lugar del equipo B).
Probé una solución:
Pasé medio día en esto, cansado de intentar configurarlo. Probé la solución dada en la publicación de error del servidor antes mencionada, reemplazando mi bloque de ubicación con:
ubicación / { proxy_pass http://frontends; proxy_set_header Anfitrión $anfitrión; proxy_redirect http://frontends http://$host:$server_port/; proxy_redirect http://frontends:8080/ http://$host:$server_port/; }
Esto da como resultado un bucle de redireccionamiento. Salida de registro de muestra comenzando desde la primera solicitud hasta /:
AAA.BBB.CCC.DDD - - [22/dic/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/dic/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/dic/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/dic/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/dic/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"
¿Alguna idea sobre cómo puedo tener una vida normal con equilibrio de carga con nginx?
Enlace a nginx.conf:http://pastebin.com/91CMftSc