2017-07-05 14 views
1

私は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を使用してきましたが、これはどこにも答えが見つからないので、これは初めての質問です。

答えて

0

は、だから私は最終的に答えを発見した、それはこの理由の私の.htaccessファイルで、私はそれにこのラインでmod_expiresディレクティブを持っていたということです、それはAWS ... とは何の関係もありませんが判明:

すべてのHTMLページにそのキャッシュヘッダーを追加
ExpiresByType text/html "access plus 1 days" 

...そして、いくつかの理由でLinux上またはWindows上のApache私のどちらが上mod_expiresをを持っていたが、AWSからWebサーバはそれを持っていた...

関連する問題