
A documentação diz o seguinte:
Estas diretivas são herdadas do nível anterior se e somente se não houver diretivas add_header definidas no nível atual.
Meu problema é que tenho vários location
blocos que quero armazenar em cache, como este:
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
expires 1w;
add_header Cache-Control public;
}
Mas isso me fará perder todos os cabeçalhos declarados fora do bloco. Aparentemente, a única maneira é duplicar esses cabeçalhos em cada bloco de localização, por exemplo:
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
location ~ ^/img/(.*)\.(png|jpg|jpeg|gif|bmp)$ {
expires 1w;
add_header Cache-Control public;
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
}
Não parece certo. Alguma ideia?
Responder1
Você está atrás do módulo ngx_headers_more: https://www.nginx.com/resources/wiki/modules/headers_more/
E sim, o comportamento de add_header é realmente irritante :)