proxy_pass - Reenviar encabezados de solicitud desde el servidor proxy nginx
nginx proxy_redirect example (2)
El problema es que los guiones bajos ''_'' no son válidos en el atributo del encabezado. Si eliminar el guión bajo no es una opción, puede agregarlo al bloque del servidor:
underscores_in_headers on;
Básicamente se trata de copiar y pegar del comentario de @ kishorer747 en la respuesta de @Fleshgrinder, y la solución es de: https://serverfault.com/questions/586970/nginx-is-not-forwarding-a-header-value-when-using-proxy-pass/586997#586997
Lo agregué aquí ya que en mi caso la aplicación detrás de nginx funcionaba perfectamente, pero tan pronto ngix estaba entre mi aplicación de matraz y el cliente, mi aplicación de matraz ya no veía los encabezados. Pasó bastante tiempo depurando.
Estoy usando Nginx como proxy para filtrar las solicitudes a mi aplicación. Con la ayuda del "http_geoip_module" estoy creando un encabezado http de código de país, y quiero pasarlo como un encabezado de solicitud usando "headers-more-nginx-module". Este es el bloque de ubicación en la configuración de Nginx:
location / {
proxy_pass http://mysite.com;
proxy_set_header Host http://mysite.com;;
proxy_pass_request_headers on;
more_set_headers ''HTTP_Country-Code: $geoip_country_code'';
}
Pero esto solo establece el encabezado en la respuesta. Intenté usar "more_set_input_headers" en lugar de "more_set_headers", pero el encabezado ni siquiera se pasó a la respuesta.
¿Que me estoy perdiendo aqui?
Si desea pasar la variable a su proxy backend, debe configurarla con el módulo proxy.
location / {
proxy_pass http://example.com;
proxy_set_header Host example.com;
proxy_set_header HTTP_Country-Code $geoip_country_code;
proxy_pass_request_headers on;
}
Y ahora se pasa al backend proxy.