Estoy persiguiendo mi configuración de
nginx > apache/php
a
haproxy > nginx > apache/php
(utilizando haproxy 1.5-dev18 con soporte ssl compilado)
Tanto nginx como haproxy están configurados correctamente para establecer el encabezado HTTP_X_FORWARDED_PROTO. Sin embargo, cuando nginx obtiene el tráfico ssl de haproxy, ve la conexión como http y establece el encabezado como tal.
¿Cómo puedo configurar nginx para reenviar el encabezado HTTP_X_FORWARDED_PROTO si existe, pero de lo contrario continuar configurándolo en función de la conexión?
proxy_set_header
líneas de antes y después son las mismas.$scheme
vs$thescheme
.default $scheme
caso sucederá, configurando$thescheme
HTTPS aunque, de hecho, la solicitud (a haproxy) es HTTP inseguro. - Para evitar eso, ¿qué pasa con:default $http_x_forwarded_proto; '' $scheme;
así que si haproxy dice HTTP se respetará?default $http_x_forwarded_proto;
).Tenía la misma necesidad con AWS ELB
Aquí está mi línea de resolución:
fuente
$http_x_forwarded_proto
algún lugar? ¿Que es eso?proxy_set_header X-Forwarded-Proto $scheme;
, que no funcionaNo puedo comentar, así que publico esto como respuesta: ¿Podría darnos una parte o la totalidad de su configuración nginx para que podamos ver qué tiene de malo? ¿Posiblemente su configuración HAProxy también?
El primer problema que se me ocurre es que su HAProxy está haciendo la terminación de SSL. Para resumir, para descargar sus servidores de back-end, se puede configurar un equilibrador de carga para hacer todo lo de SSL y luego comunicarse con sus servidores de back-end en HTTP. Como el esquema aquí: http://blog.exceliance.fr/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/
Para darle una buena respuesta a su pregunta, ¿podría verificar que no tiene ningún problema de bucle invertido en su configuración http <> https? Tal vez entonces podría redirigir http a http, https a https, y luego forzar que http se redirija a https.
¿Podría verificar también que ha habilitado el paso ssl en su configuración de HAProxy?
fuente