httpヘッダーがキャッシュコンテンツのヘッダーと一致するようにするsquid config

StackOverflow https://stackoverflow.com/questions/4103153

質問

このようなクラウドセットアップがあります:

User Request -> Perlbal (SSL unwrapping) -> Squid (Caching) -> Apache -> HTTP Response

SSLは一部のページではサポートしていませんが、他のページではサポートしていません。 Perlbal Layerを超えたすべてのPerlbal Layのみが、PerlbalがSSLを解除するため、暗号化されていないHTTPよりもプロセス要求しますが、追加します。 X-Forwarded-Proto アプリケーションがSSLが使用されているかどうかを認識できるようにヘッダー。

リクエストがHTTPを介してアプリケーション(Apache)にヒットした場合、その特定のページがSSLを必要とする場合、httpsにリダイレクトします。

安全なリソースのリクエストがアプリケーションに到達したとき、およびアプリケーションが送信した場合 Cache-Control: public, 、イカはそのコンテンツを正しくキャッシュします。問題は、ユーザーがキャッシュされたらそのリソースのHTTPバージョンにアクセスしようとする場合、イカはキャッシュヒットとして処理し、httpを介してキャッシュされたリソースを返すことです。 -Forwarded-Protoは元のリクエストと一致しません。

これはどのように行われますか?私たちのアプリケーションは送信します:

Vary: X-Forwarded-Proto,Accept-Encoding

これに関する記事やドキュメントを見つけるのは苦手です。 Squidは、SSLまたはその他を示すXに向いたプロットヘッダーに関係なく、キャッシュされたコンテンツを提供します。

役に立ちましたか?

解決

OMFG。

私たちは歴史的な理由で私たちの.htaccessでこれを持っていました:

BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary

IE 6ユーザーが当社のサイトにアクセスすると、イカキャッシュに何が起こるかを3つ推測します。異なるヘッダー削除。キャッシュ戦略が壊れています。

ネジIE。これを削除することは良い動きでした。すべてが機能しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top