2011-01-27 8 views
5

私は静的資産にAmazonのCloudfront CDNを使用しています。 CfrontはすべてのGET要求に対してEtagを発行します。私は特定のCache-Control情報ですべての資産をメタデータに設定しています。これは(わかっているように)Etagを余分にします。私はWebPageTest.orgで自分のサイトの負荷パフォーマンスをテストし、これらの不要なEtagsのために私を騙します。彼らが実際には不必要な場合、誰かが放出されることを抑制する方法を知っていますか?AWS CloudfrontでEtagヘッダーが発行されないようにすることはできますか?

+0

これに関するアップデートはありますか? ETagは、Expiresとmax-ageが設定されていても、複数のget要求を強制します。 –

答えて

0

アセットをダウンロードするノードに関係なく、Cloudfrontが一貫したEtagsを配信する場合は、問題を最小限に抑える必要があります。

2つの異なる場所からCloudfrontに解決すると、CNAMEが完全に異なるIPアドレスのセットに解決されたことが確認されました。最初のサーバーはAmazonのLAXデータセンター(lax1.cloudfront.net)で8つのIPアドレスのセットに解決され、2番目のサーバーはAmazonのSFOデータセンター(sfo4.cloudfront.net)で8つのIPアドレスに解決されました。

Cloudfrontディストリビューションでオブジェクトを選択し、各場所から "wget - server-response"を実行してから、結果を比較しました。私は、各データセンターごとに異なるIPアドレスからの応答を得るために、これを各データセンターに対して複数回行いました。

結果はEtagsが同じで、私が当てたデータセンターとそのデータセンターからどのIPアドレスが応答したのかという点で同じでした。

私はこのことができます以下のヘッダは、サーバ X-AMZ-ID-2 X-AMZ-要求-ID 年齢 X-AMZ-CF-Idが 経由

・ホープ間で異なるなかったことの通知をしました、

デビッド

[編集済み - 以下の良好な補正に基​​づいてETagに削除コメント]

+3

これは真実ではありません.Webパフォーマンスは、EtagとLast-Modifiedヘッダーに関するバグを監視します。これは、Cache-Controlヘッダーの長さが最大である場合でも、サーバーへの不要なラウンドトリップが発生するためです。これらの往復の結果は、ステータスコード304になります。しかし、ここでの違いは300msと2ms(ブラウザのキャッシュ)であり、多くの静的アセットを使用すると累積する可能性があります(CSS 、js、画像)。 – Evgeny

1

あなたは、OriginのSerを使用している場合ver、および、ETagを元のサーバー上で無効にした場合、CloudFrontはそのヘッダーにETagを追加しません。自分のオリジンサーバーでETagを無効にして確認しました。

+0

S3から直接CloudFrontを使用する場合、EtagとLast-Modifiedを抑制する方法はありますか? – saver

関連する問題