proxy_redirect proxy_pass example cache nginx proxy http-headers

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.