web-dev-qa-db-ja.com

サーバー/ロケーションブロック外のHTTPヘッダーを使用したNginxブラウザーキャッシュ

特定のサーバー(および場所)ブロック外のNginxのHTTP expiresヘッダーを設定するのが困難です。私が欲しいのは次のようなものです:

location ~* \.(png|jpg|jpeg|gif|ico)$ {
    expires 1y;
}

ただし、多数のサイトをホストしているため、サーバーブロックごとに繰り返す必要はありません。すべてのサーバーブロックに配置できますが、あまり乾燥していません。

これをHTTPブロックまたは他のすべてのブロックの外側に配置しようとすると、「ここではロケーションディレクティブは許可されません」と表示されます。サーバーブロックに配置する必要があり、仮想ホストごとに異なるサーバーブロックがあります。

どんな助け/説明も歓迎されます。

1

includeを使用します。

1つの新しいファイルincludes/gfx-expires-header.confを作成し、そこにディレクティブを配置します。

location ~* \.(png|jpg|jpeg|gif|ico)$ {
    expires 1y;
}

次に、すべてのサーバーブロックにinclude includes/gfx-expires-header.confを配置するだけです。

1
Thaeli