Nginx add_header para uma página de 50 *

19

Atualmente, estou tentando fazer com que o nginx adicione um cabeçalho à resposta quando estiver enviando algum tipo de erro 50 *. Eu já tenho uma diretiva add_header no bloco http e isso é respeitado em todas as solicitações, exceto que parece haver erros. Eu também tentei o seguinte em um dos meus fantasmas:

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

Ir para essa página me dá um 502, mas nenhum cabeçalho. Isso é simplesmente algo que o nginx não faz ou estou fazendo errado?

Gopher medíocre
fonte
Você poderia postar a saída de US $ onda -I <url> // mediocregopheristhecoolest
Chida

Respostas:

21

A documentação afirma que add_header "Adiciona o campo especificado a um cabeçalho de resposta, desde que o código de resposta seja 200, 204, 206, 301, 302, 303, 304 ou 307. Um valor pode conter variáveis." Portanto, não funciona com um 502.

Esqueci de acrescentar que você pode usar o módulo mais de cabeçalhos de terceiros para adicionar cabeçalhos a outros códigos. Você provavelmente terá que recompilar para adicioná-lo.

kolbyjack
fonte
Veja comentário de marat: os novos suportes versão nginx definindo o cabeçalho independentemente do código de resposta
Laurens Rietveld
44

Desde o Nginx 1.7.5, você pode alwaysadicionar um cabeçalho, independentemente do código de resposta:

add_header X-Test "blahblahblah" always;
marat
fonte
1
Frustrantemente, a versão nos repositórios Debian está atualmente desatualizada (1.6.x), mas o nginx mantém seu próprio repositório com a última versão estável (1.8.x agora).
precisa saber é
Se você deseja atualizar um sistema debian já em funcionamento, o backian debian é mais seguro ... packages.debian.org/jessie-backports/httpd/nginx O pacote upstream usa uma organização de pacotes diferente (pode causar algum tempo de inatividade em vez do mecanismo de atualização nginx suave ) E seu script postrm remove os logs. E um par de outras pequenas diferenças ...
Lajos Veres