
ドキュメントには次のように書かれています:
これらのディレクティブは、現在のレベルで 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 の動作は本当にイライラします :)