本文へスキップ
MameTechNews
フロントエンド

Cloudflare、Cache RulesでVaryを制御可能に 正規化とバイパスを選択

## POINTS

  • 全プランで利用可能。normalizeを基本に、Cookieなど高カーディナリティはbypassする。
  • 正規化したAcceptはオリジンにも送る。キャッシュとオリジンの判断がずれないようにする。
  • 設定変更は旧エントリを自動では消さない。方針を変えたら対象URLのパージも計画する。

CloudflareはCache RulesにVary対応を入れ、FreeからEnterpriseまでダッシュボード、Rulesets API、Terraformから使えるようにした。Varyは同じURLでも言語や画像形式で応答が変わることをキャッシュに伝える一方、生のヘッダ差をすべて別物にするとエントリが割れ、ヒット率が落ちる。

新しい設定では、オリジンがVaryで対象ヘッダを示し、ルール側がヘッダごとに動作を決める。normalizeはAccept系を整理して同等リクエストをまとめる。passthroughは生のバイト列で区別する。bypassはそのヘッダがVaryに含まれる応答を保存しない。Vary: *は常に回避。正規化はオリジンへ転送する値にも使い、キャッシュキーとオリジンの選択がずれないようにする。

カスタムキャッシュキーと違い、Varyは応答が宣言したヘッダだけを見る。画像・言語の出し分けをしているサイトは、対応フォーマットを狭く定義し、正規化後のヒットをCF-Cache-Statusで確認するところから始めたい。設定変更は既存エントリを自動削除しない。