Compression Rules(圧縮ルール)を使うと、ファイル拡張子とコンテンツタイプに応じて、Cloudflare のグローバルネットワークからサイト訪問者へ返すレスポンスの圧縮をカスタマイズできます。Compression Rules は Ruleset Engine で動作します。
Cloudflare はコンテンツタイプに応じて、一部のレスポンスをデフォルトで圧縮します。Compression Rules では、このデフォルト動作をカスタマイズできます。特定のファイルタイプに対して優先する圧縮アルゴリズムを指定することもできます。
圧縮ルールが一致し、複数の圧縮アルゴリズム(gzip や Brotli など)が指定されている場合、Cloudflare はリストのうち、訪問者のブラウザーが対応している最初のアルゴリズムを選びます。ブラウザーの対応状況は、accept-encoding HTTP リクエストヘッダーで判定します。ブラウザーはこのヘッダーを自動送信し、展開できる圧縮形式を示します。同じリクエストに複数の圧縮ルールが一致した場合は、最後に一致したルールが優先されます。
Cloudflare は、よくあるユースケース向けのルールテンプレートを提供しています。
-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Templates を選び、利用可能なテンプレートのいずれかを選びます。
開発者向けドキュメントの Examples ギャラリー も参照できます。
または、次のページの手順で始めます。
Compression Rules は、すべての Cloudflare プランで利用できます。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| 利用可否 | はい | はい | はい | はい |
| ルール数 | 10 | 25 | 50 | 300 |
圧縮ルールの式では、次のフィールドをよく使います。
| Expression Builder のフィールド | フィールド名 |
|---|---|
| Media Type | http.response.content_type.media_type |
| File extension | http.request.uri.path.extension |
| 該当なし | raw.http.request.uri.path.extension |
-
圧縮ルールが一致しても、訪問者のブラウザーがルールで設定した圧縮アルゴリズムのいずれにも対応していない場合(
accept-encodingリクエストヘッダーで判定)、レスポンスは圧縮されません。 -
圧縮ルールが一致しても、オリジンサーバーのレスポンスに
cache-control: no-transformHTTP ヘッダーが含まれている場合、圧縮ルールはレスポンスを変更しません。オリジンサーバーはこのヘッダーで、Cloudflare などの中継者がレスポンス本文を変更しないよう示します。
Compression Rules のトラブルシューティングでは、Cloudflare Trace を使い、特定の URL でルールが発動するかどうかを確認します。