Nginx add_header para una página de 50 *


19

Actualmente estoy tratando de hacer que nginx agregue un encabezado a la respuesta cuando envía algún tipo de error 50 *. Ya tengo una directiva add_header en el bloque http, y eso se respeta para todas las solicitudes, excepto que parece errores. También probé lo siguiente en uno de mis vhosts:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

Ir a esa página me da un 502, pero no un encabezado. ¿Es esto simplemente algo que nginx no hace, o lo estoy haciendo mal?


¿Podría publicar la salida de $ curl -I <url> // mediocregopheristhecoolest
— Chida

Respuestas:


21

La documentación establece que add_header "Agrega el campo especificado a un encabezado de respuesta siempre que el código de respuesta sea igual a 200, 204, 206, 301, 302, 303, 304 o 307. Un valor puede contener variables". Entonces no funciona con un 502.

Olvidé agregar que puede usar el módulo más encabezados de terceros para agregar encabezados a otros códigos. Sin embargo, probablemente tendrá que volver a compilar para agregarlo.


Ver comentario de marat: la nueva versión de nginx admite la configuración del encabezado independientemente del código de respuesta
— Laurens Rietveld

44

Desde Nginx 1.7.5 puede usar alwayspara agregar un encabezado independientemente del código de respuesta:

add_header X-Test "blahblahblah" always;

1
Frustrantemente, la versión en los repositorios de Debian está desactualizada (1.6.x), pero nginx mantiene su propio repositorio con la última versión estable (1.8.x en este momento).
— kungphu

Si desea actualizar un sistema Debian que ya funciona, los backports de Debian son más seguros ... packages.debian.org/jessie-backports/httpd/nginx El paquete ascendente utiliza una organización de paquetes diferente (puede causar algún tiempo de inactividad en lugar del mecanismo de actualización nginx sin problemas ) Y su secuencia de comandos postrm elimina los registros. Y un par de otras pequeñas diferencias ...
— Lajos Veres
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.