Eu uso o nginx 1.10.1 com configuração semelhante a esta:
server {
(...)
add_header Header1 "value";
(...)
# in this location above add_header directive works
location / {
uwsgi_pass unix:/var/run/some.sock;
(...)
}
# ..and it this one it doesn't!
location ~* (^/$|favicon.ico|robots.txt) {
return 204;
expires 24h;
add_header Cache-Control "public";
etag on;
}
}
..então meu problema é que Header1 está definido para solicitações processadas pelo 1º local, mas não para o 2º.
Por quê?
Eu li os add_header
documentos e sei que funciona por padrão apenas para códigos de retorno "positivos", mas 204 é um deles (na verdade, testei alterar o código para 200, 404 e não ajudou).
(Também tentei adicionar always
ao meu add_header Header1 ...
, mas foi uma tentativa bastante desesperada, pois não deveria ajudar - e não ajudou.)
A documentação afirma:
A presença de
add_header Cache-Control "public";
impede que o bloco herdeadd_header Header1 "value";
.