Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Cache Response Rules

最終更新 Markdown で表示Agent セットアップ

Cache Response Rules では、リクエストとレスポンスの属性に基づいてキャッシュ設定を構成できます。これらのルールは、キャッシュ前の http_response_cache_settings フェーズで実行されます。このフェーズは、Cloudflare がオリジンレスポンスを受け取ったあとに走ります。

Cache Response Rules では、次のことができます。

  • オリジンが送る Cache-Control ディレクティブを変更する。
  • 対象を絞った キャッシュパージ のため、レスポンスのキャッシュタグを変更する。
  • キャッシュ前に、オリジンレスポンスからヘッダー(ETagSet-CookieLast-Modified)を取り除く。

Cache Response Rules は、オリジンからのキャッシュ済みレスポンスと、キャッシュされない(動的な)レスポンスの両方に適用されます。たとえば、キャッシュ対象外のレスポンスから Set-Cookie ヘッダーを取り除けます。

Cache Response Rules は、ダッシュボードAPI、または Terraform で作成できます。

利用可否

次の表は、プランごとの Cache Response Rules の利用可否です。

Free Pro Business Enterprise
利用可否 はい はい はい はい
ルール数 10 25 50 300

トラブルシューティング

Cache Response Rules のトラブルシューティングでは、Cloudflare Trace を使い、特定の URL でルールが発動するかどうかを確認します。

Cache Rules との関係

Cache Response Rules はオリジンレスポンスに対して動作し、Cache Rules は受信リクエストに対して動作します。両方のルール種別の設定が衝突する場合は、Cache Response Rules が優先されます。

主な違い:

  • キャッシュ対象かどうか: コンテンツをキャッシュ対象にするかどうかは、引き続き Cache Rules だけで決まります。ただし Cache Response Rules は、set_cache_control アクションで no-store ディレクティブを設定し、キャッシュ可能なアセットをキャッシュ対象外にできます。
  • Origin Cache Control (OCC): http_response_cache_settings フェーズのいずれかのルールが一致すると、Cloudflare は Origin Cache Control の動作(origin_cache_control = true)をデフォルトにします。
  • CDN-Cache-Control の優先順位: Cache Response Rules が設定した Cache-Control ディレクティブは、オリジンが設定した Cloudflare-CDN-Cache-Control および CDN-Cache-Control ヘッダーより優先されます。詳細は CDN-Cache-Control ヘッダーの優先順位 を参照してください。
  • 積み重ね: Cache Response Rules の積み重ね方は Cache Rules と同じです。複数のルールが同じ設定を指定した場合、最後に一致したルールが勝ります。

例: Edge TTL より OCC が優先される場合

次のシナリオを考えます。

  1. Cache Rule が Edge TTLoverride_origin、値を 7200 秒(2 時間)に設定する。
  2. Cache Response Rule が set_cache_controls-maxage3600 秒(1 時間)に設定し、cloudflare_only を有効にする。
  3. オリジンが Cache-Control: s-maxage=600 で応答する。

この場合、Cache Response Rule が優先されます。Cloudflare は Cache Response Rule が設定した s-maxage に従い、アセットを 3600 秒(1 時間)キャッシュします。cloudflare_only が有効なため、訪問者にはオリジンの元の s-maxage=600 が届きます。

Workers および Transform Rules との違い

Workers と Response Header Transform Rules は、キャッシュの判断が終わったあとに実行され、レスポンスをキャッシュするかどうか、またはどうキャッシュするかに影響できません。オリジンのレスポンスヘッダーに基づいてキャッシュ動作を変えられるのは Cache Response Rules だけです。

オリジンの Cache-Control ディレクティブを上書きする必要がある場合(たとえば private を削除する、s-maxage を追加する)は、Worker や Transform Rule ではなく Cache Response Rule を使います。

注意

  • Last-Modified を取り除くと、Smart Edge Revalidation はオフになります。
  • Cache Response Rules は 1xx HTTP レスポンスステータスコード を無視します。これらは情報レスポンスとして扱われるためです。
  • Cache Response Rules はバージョン管理できます。詳細は Version Management のドキュメントを参照してください。

役に立ちましたか?