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?

Gopher mediocre
fuente
¿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.

kolbyjack
fuente
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;
marat
fuente
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