through supports protocol inverso guide funciona docs configurar como cache nginx http-headers proxypass

supports - ¿Cómo agregar un encabezado de respuesta en nginx cuando se usa proxy_pass?



nginx supports through scgi protocol (4)

Quiero agregar un encabezado personalizado para la respuesta recibida del servidor detrás de nginx.

Mientras add_header trabaja para las respuestas nginx-procesado, no hace nada cuando el proxy_pass se utiliza.


Como Oliver escribe:

add_header funciona tan bien con proxy_pass como sin él.

Sin embargo, como escribe Shane, a partir de Nginx 1.7.5, debe pasar always con el fin de obtener add_header a trabajar para las respuestas de error, así:

add_header X-Upstream $upstream_addr always;


Hay un módulo llamado HttpHeadersMoreModule que le da más control sobre las cabeceras. No viene con Nginx y no requiere instalación adicional. Con él, usted puede hacer algo como esto:

location ... { more_set_headers "Server: my_server"; }

Eso va a "establecer la cabecera de salida del servidor para el valor de cualquier código de estado y cualquier tipo de contenido". Sustituirá cabeceras que ya están establecidas o añadirlos si desarmado.


Usted podría intentar esta solución:

En su location bloque cuando se utiliza proxy_pass hacer algo como esto:

location ... { add_header yourHeaderName yourValue; proxy_pass xxxx://xxx_my_proxy_addr_xxx; # Now use this solution: proxy_ignore_headers yourHeaderName // but set by proxy # Or if above didn''t work maybe this: proxy_hide_header yourHeaderName // but set by proxy }

No estoy seguro sería exactamente lo que necesita, pero intenta alguna manipulación de este método y tal resultado se ajuste a su problema.

También puede utilizar esta combinación:

proxy_hide_header headerSetByProxy; set $sent_http_header_set_by_proxy yourValue;


add_header funciona tan bien con proxy_pass como sin él. Me acaba de establecer hoy una configuración en la que he utilizado exactamente la misma Directiva. Tengo que reconocer sin embargo que he luchado así establecer esto sin recordar exactamente la razón, sin embargo.

Ahora mismo tengo una configuración de trabajo y que contiene los siguientes (entre otros):

server { server_name .myserver.com location / { proxy_pass http://mybackend; add_header X-Upstream $upstream_addr; } }

Antes de Nginx 1.7.5 add_header funcionaba sólo en las respuestas exitosas, en contraste con la HttpHeadersMoreModule mencionado por Sebastián Goodman en su respuesta .

Desde Nginx 1.7.5 se puede utilizar la palabra clave always para incluir encabezados personalizados, incluso en las respuestas de error. Por ejemplo:

add_header X-Upstream $upstream_addr always;

Limitación: No se puede reemplazar el server valor de la cabecera usando add_header .