🚀

Page Rules のリタイアメントと新しいルールへの自動移行について

2024/06/24に公開

Cloudflareではリクエストに対して様々な処理が可能となる複数の機能が備わっています。その代表的なものがPage Rulesです。
https://zenn.dev/kameoncloud/articles/545924cf49d52b
この記事では通常キャッシュされないHTMLをトップページ以外はキャッシュさせるという挙動に変更させました。
キャッシュの挙動変更以外にも、ヘッダーの上書き、常時TLS強制、リダイレクト、等Pages Rulesは非常に多くの機能を担っています。CloudflareのCDN+αで利用される場合、肝となるエンジンと言えます。

このため時間と共にPages Rulesは複雑化し、ユーザーによっては複数の設定を投入した際の優先順位等に気を配らないといけない時間が増えてきたことや、新しいルール投入時のデバッグやテストが複雑化するという問題を抱えるようになりました。またルールの上限125を超えてしまうケースも出てきました。

これらの問題を解決するためにCloudflareではPages Rulesのリタイアメントと自動化された新しいルール群への移行を発表しました。
https://blog.cloudflare.com/ja-jp/future-of-page-rules-ja-jp/
https://developers.cloudflare.com/rules/reference/page-rules-migration/
この自動化された移行は2025年のどこかで行うことが予定されており、追ってアナウンスを行う予定です。また今から新規でルールを設定するユーザーはPages Rulesではなくより細分化されたルールを用いることを推奨しています。(また新規の設定は可能です)

Pages Rules は4つに分割されました。

  • Origin Rules
  • Cache Rules
  • Config Rules (現在はConfiguration Rulesに改名されました)
  • Dynamic Redirect (現在はRedirect Rulesに改名されました)
    です。
    その他にも
  • Transform Rules
  • Compression Rules
  • Snippets
    という新しい機能が加わっています。
    https://zenn.dev/kameoncloud/articles/89baddeed1bd1d

これからの連載記事では先日取り上げたSnippetsを除き、1個づつルールを取り上げて設定していきたいと思います。
この記事ではまず。それぞれが何を行うものか?をサマリーとしてお伝えします。

Transform Rules

リクエストと応答の URI パス、クエリ文字列、HTTP ヘッダーを調整できます。

  • HTTP リクエストの URL パスとクエリ文字列の書き換え
  • HTTP リクエスト/レスポンスヘッダの書き換え
    等ができます。

Origin Rules

Cloudflareが受信したリクエストとOriginへ送出するリクエストの変換を行います。

  • ホストヘッダー
  • SNI名書き換え
  • 受信リクエストの名前解決されたホスト名に上書き
  • 宛先ポートの変更

Cache Rules

Cloudflare のキャッシュ設定をカスタマイズします。キャッシュの対象、キャッシュする期間、場所を調整できるほか、一致するリクエストに対して Cloudflare のキャッシュやその他のルール製品との特定のやり取りをトリガーできます。
過去のアップした以下の記事は今後Cache Rulesで設定すべき内容となります。
https://zenn.dev/kameoncloud/articles/545924cf49d52b

Configuration Rules

受信リクエストに一致する特定の Cloudflare構成設定をカスタマイズできます。

  • TLS常時強制
  • 非ブラウザ、特定ヘッダーを含まないクライアントからのアクセスブロック
  • 画像のホットリンク無効化(直接的な他サイトからの画像呼び出しの無効化)
  • Cloudflareその他機能の有効化 Zaraz, Fonts, Polish等

Redirect Rules

リクエストを行ったクライアントに対してHTTP300番台をレスポンスとして戻すことでリダイレクトを行います。

Snippets

https://zenn.dev/kameoncloud/articles/89baddeed1bd1d

Compression Rules

ファイル拡張子とコンテンツタイプに基づいて、Web サイト訪問者への応答に適用される圧縮をカスタマイズします。コンテンツの種類に基づいて、デフォルトで一部のレスポンスは圧縮されますが、その対象やアルゴリズムなどをカスタマイズできます。以下の記事の内容をさらに細かくカスタマイズできる、という機能です。
https://zenn.dev/kameoncloud/articles/0d98ed4dad4acc

実行順

https://developers.cloudflare.com/ruleset-engine/reference/phases-list/#application-layer
これらはこのページに記載されている順番で処理されます。このブログの記載順と同じです。

次回以降の記事ではそれらを1個づつ検証して手順をまとめていきます。

Discussion