私はHTTP/2を使用しているので、Application Load Balancerの背後に1つのEC2インスタンスを持つAWS Beanstalkインスタンスに配置されたSymfony 3アプリケーションを使用しています。AWS ALB設定Cache-Controlプライベート最大期限ヘッダ
しかしロードバランサで奇妙な問題が見つかりました。キャッシュヘッダーを設定してはいけないとわかっていますが、何らかの理由でそれがあります。私のテストマシンでは、同じコードを使用して、応答:
cache-control:private
しかし、AWSのサーバー上でこのヘッダーが代わりに送信されます。
cache-control:private, max-age=86400
を自分のアプリケーションのみでなければなりませんので、私は、クライアントのブラウザが応答をキャッシュしたくないので、この自分のアプリケーションを破りますログインしたユーザーがアクセスします。私が持っている唯一の方法これは、クライアントに応答を送信する前に私のapp.phpファイルでこの関数を呼び出すことである修正することが分かっ:
$response->headers->removeCacheControlDirective('private');
これは、応答をキャッシュからブラウザを防ぐcache-control
ヘッダにno-cache
ディレクティブが追加されますが、 AWSアプリケーションがまだmax-age
ディレクティブを送信しているので、これが適切なアプローチであるかどうかはわかりません。すべてのブラウザでno-cache
ディレクティブが他のディレクティブを上書きするかどうかわかりません。修正後
これは私が私のサーバーから取得されるものです:
cache-control:no-cache, private, max-age=86400
TL/DR:
AWSからcache-control:no-cache, private
そしてこのだから、私が求めています何を、どのような方法がありますAWSサーバーから送信されたディレクティブを削除するにはどうすればよいですか?
私は何年もStackOverflowを使用してきましたが、これはどこにも答えが見つからないので、これは初めての質問です。