私のサーバーには、画像を含むフォルダーがあり、CDN 経由でモバイル アプリにサービスを提供するためと、アプリに配信されるコンテンツを管理するバックエンド Web アプリと連携するために使用されています。後者 (バックエンド Web アプリ) では、問題のフォルダーから配信された画像がブラウザーにキャッシュされないようにして、作成者が更新したらすぐにバックエンド アプリで更新バージョンを表示できるようにしたいと考えています。CDN は、モバイル アプリに配信するために同じ画像を取得し、更新設定を 30 分に設定して、古くなったコンテンツ画像を配信しないようにしています。
expires epoch
私の質問は、 Webアプリケーションからのリクエストに対してのみヘッダーを挿入するようにNginxを設定するにはどうすればよいかということです。この質問に対する答えの一部は、このSOスレッドヘッダーを挿入する前にリファラーを検査するように、そこで提案されているソリューションを変更する方法はありますか? たとえば、から発信されたすべてのリクエストはヘッダーhttps://example.com/backoffice
で応答されますexpires epoch
が、CDN プル リクエストからのリクエストなど、その他のリクエストは応答されません。
答え1
ここでは単純なものif
で十分でしょう:
server {
location ... {
if ($http_referer ~* ^https://example.com/backoffice) {
expires epoch;
}
}
}
一般的には、大いにWeb アプリケーションがキャッシュの決定を行い、適切なディレクティブで応答することが望ましいです。