
В документации говорится следующее:
Эти директивы наследуются от предыдущего уровня тогда и только тогда, когда на текущем уровне не определены директивы add_header.
Моя проблема в том, что у меня есть несколько location
блоков, которые я хочу кэшировать, например, этот:
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;";
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;";
}
Кажется неправильным. Есть идеи?
решение1
Вам нужен модуль ngx_headers_more: https://www.nginx.com/resources/wiki/modules/headers_more/
И да, поведение add_header действительно раздражает :)