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