variable de esquema nginx $ detrás del equilibrador de carga
amazon-elb (1)
¿Es posible forzar el valor del esquema nginx $ a "https" si nxinx se está ejecutando detrás del equilibrador de carga?
En mi escenario, el equilibrador de carga se encarga de la comunicación https con el cliente y reenvía las solicitudes a nginx como http sin formato. Sé que puedo hacer algo como esto para detectar https
set $my_scheme "http";
if ($http_x_forwarded_proto = "https") {
set $my_scheme "https";
}
pero tengo curiosidad si hay algo como la función real_ip_header
para IPs.
¿Hay también algunos encabezados que necesito actualizar cuando detecto https manualmente?
Nuestra configuración es la misma que la suya, solo se usa map
lugar de if/set
(según lo recomendado por los desarrolladores de nginx ).
# Sets a $real_scheme variable whose value is the scheme passed by the load
# balancer in X-Forwarded-Proto (if any), defaulting to $scheme.
# Similar to how the HttpRealIp module treats X-Forwarded-For.
map $http_x_forwarded_proto $real_scheme {
default $http_x_forwarded_proto;
'''' $scheme;
}
PD Estoy de acuerdo, un módulo real_scheme
sería bueno!