
La documentación dice esto:
Estas directivas se heredan del nivel anterior si y sólo si no hay directivas add_header definidas en el nivel actual.
Mi problema es que tengo varios location
bloques que quiero almacenar en caché, 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;
}
Pero eso me hará perder todos los encabezados declarados fuera del bloque. Aparentemente, la única forma es duplicar esos encabezados en cada bloque de ubicación, por ejemplo:
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;";
}
No parece correcto. ¿Algunas ideas?
Respuesta1
Lo que buscas es el módulo ngx_headers_more: https://www.nginx.com/resources/wiki/modules/headers_more/
Y sí, el comportamiento de add_header es realmente irritante :)