4

AWS CloudFront は初めてです。私は理解できないように見える簡単な質問があります。

私は動的サイトを持っていますが、これは編集者が記事を入力できる CMS にすぎません。その後、CMS は静的な html ファイルを生成します (drupal 6 で boost モジュールを使用しています)。

だから私が理解できないのは、この結果を達成するためにhtmlファイルのキャッシュヘッダーを設定する方法です:

cloudfront で html ファイルを少なくとも 1 時間保持したいのですが、ファイルが変更されていないことを確認する必要があります。ファイルが変更された場合は、5 分以内に取得する必要があります。

私は理にかなっていますか?

私が思いついたのは次のとおりです。

<FilesMatch "\.((html)|((html)\.gz))$">
        ExpiresByType text/html A300
        Header append Cache-Control "must-revalidate"        
  </FilesMatch>

変更が行われなかった場合、ファイルは 5 分後に保持されますか?

ブラウザーによって結果が異なるため、自分でテストするのに苦労しています。

4

1 に答える 1

2

最初に理解しておくべきことは、CloudFront がキャッシュであることです。キャッシュは、ファイルが変更されたかどうかを確認しません。キャッシュの有効期限が切れるまで、キャッシュされているものは何でも提供し続けます。

Apache Web サーバーにファイルを提供する方法を伝えるコードを投稿しているように見えますが、これは Amazon CloudFront とはまったく関係ありません。CloudFront (キャッシュそのもの) には独自のキャッシュ設定があり、Apache には従いません。

キャッシュされたデータのデフォルトの期間は 24 時間です。CloudFront を構成して、わずか 1 時間 (または、最近ではおそらく 1 分) キャッシュするように設定できます。それよりも早くキャッ​​シュの有効期限が切れる必要がある場合は、AWS コンソールまたは Web サービス API を介して「無効化」をリクエストできます (CloudFront との対話方法を指定していません)。

キャッシュを無効にする場合は、Drupal モジュールが新しい HTML を生成するたびに CloudFront に無効化リクエストを送信する必要があります。CloudFront はそれ自体ではチェックしません (キャッシュはそれを行わないため)。

個人的な経験から、CloudFront が世界中で実行されているすべてのキャッシュ サーバーをクリアして新しいコンテンツをプルできるようにするのに通常 3 ~ 15 分かかります。

これは理にかなっていますか?

于 2012-10-05T08:16:45.900 に答える