すべてのプロダクト
Search
ドキュメントセンター

Edge Security Acceleration:カスタムキャッシュキー

最終更新日:Jun 09, 2026

ユーザーリクエストのクエリ文字列、HTTP リクエストヘッダー、Cookie などの一部に基づいてカスタムキャッシュキーを生成するルールを作成できます。これにより、同じファイルにアクセスするリクエストのキャッシュキーが統一されます。その結果、リクエストパラメーターが異なっていても同じコンテンツが複数のファイルとしてキャッシュされることを防ぎ、キャッシュヒット率の向上、応答時間の短縮、帯域幅消費の削減につながります。

背景情報

  • カスタムキャッシュキー機能は、オリジンへの URL を変更しません。リクエストのキャッシュキーのみを変更し、オリジンへのリクエストがクライアントリクエストと一致するようにします。

  • キャッシュキーは、ESA のエッジノード (POP) にキャッシュされたファイルの一意の識別子です。ESA のエッジノードにキャッシュされた各ファイルは、一意のキャッシュキーに対応します。デフォルトでは、キャッシュキーはクライアントリクエストの完全な URL であり、すべてのパラメーターが含まれます。

注意事項

HTTP リクエストヘッダー、Cookie、またはユーザープロパティなどのパラメーターでカスタムキャッシュキーを設定した場合、「URL によるキャッシュのパージ」機能を使用してキャッシュされたファイルをパージすることはできません。代わりに、「カスタムキーによるキャッシュのパージ」機能を使用する必要があります。

利用シーン

利用シーン 1:キャッシュキーの統一

アプリケーションのリクエスト URL には複雑なパラメーターが含まれています。複数のリクエストが同じファイルにアクセスする場合でも、URL パラメーターが異なるため、ESA のエッジノード (POP) はそれらを異なるファイルへのリクエストとして扱います。これにより、同じコンテンツが複数回キャッシュされ、オリジンへのリクエストが増加します。

この問題に対処するために、特定のクエリ文字列を無視するカスタムキャッシュキールールを設定できます。これにより、あるクラスのリクエストのキャッシュキーが統一され、オリジンへのリクエストレートが減少します。

利用シーン 2:キャッシュキーの区別

異なるクライアントから同じ URL へのリクエストがあった場合、ESA はデフォルトで、それらを同じファイルへのリクエストとして扱います。ただし、異なるクライアントシステムを区別する client ヘッダーなど、HTTP リクエストヘッダーの値に基づいて、異なるコンテンツを配信することもできます。

このシナリオでは、クライアントタイプを含めるようにカスタムキャッシュキーを設定できます。これにより、リクエストに対して異なるキャッシュキーが生成され、各クライアントタイプがキャッシュから正しいバージョンのコンテンツを受け取ることが保証されます。

操作手順

  1. ESA コンソールで、[ウェブサイト]を選択します。サイト 列で、対象のウェブサイトをクリックします。

  2. 左側のナビゲーションウィンドウで、ルール > キャッシュルール を選択します。

  3. ルールを追加 をクリックし、ルール名 を入力します。

  4. リクエストが以下のルールと一致する場合... セクションで、ユーザーリクエストに一致する条件を設定します。詳細については、「ルール式の構成」をご参照ください。

  5. キャッシュの適格性 セクションで、キャッシュ可否キャッシュ対象 に設定します。

  6. カスタムキャッシュキー セクションで、設定 をクリックし、以下のパラメーターを設定します。

    パラメーター

    説明

    クエリ文字列のソート

    クエリ文字列のソート機能を有効にするかどうかを指定します。

    クエリ文字列

    キャッシュキーを生成する際に、クエリ文字列 (URL の ? 以降の部分) をどのように処理するかを設定します。

    HTTP リクエストヘッダー

    • これらのヘッダー名とその値を含みます(ヘッダー名を入力してください。英字は小文字のみサポートされています):指定されたヘッダー名とその値をキャッシュキーに含めます。

    • 指定された HTTP リクエストヘッダーの存在を確認します。ヘッダーが存在する場合、そのヘッダー名が `Cachekey` に追加されます。

    Cookie

    • これらの Cookie 名とその値を含みます(Cookie 名を入力してください。英字は小文字のみサポートされています):指定された Cookie 名とその値をキャッシュキーに含めます。

    • 存在を確認(ヘッダー名を入力してください。英字は小文字のみサポートされています):指定された Cookie が存在する場合、Cookie 名をキャッシュキーに追加します。

    ユーザー

    • デバイスのタイプ: User-Agent ヘッダーから識別されるクライアントのデバイスタイプに基づいてキャッシュキーを生成します。 サポートされているタイプは desktoptabletmobile です。

    • 国 / 地域:クライアントの IP アドレスから識別されるクライアントの国またはリージョンに基づいてキャッシュキーを生成します。

    • 言語:リクエストの Accept-Language ヘッダーから識別されるクライアントの言語に基づいてキャッシュキーを生成します。

    Web キャッシュ詐欺からの保護

    静的コンテンツのキャッシュを許可しながら、Web キャッシュデセプション攻撃から保護します。

  7. OK をクリックします。

設定例

シナリオ例

  • ユーザーリクエスト URL:http://www.example.com/image.jpg?key123=321&key456=654

  • リクエストヘッダー:

    • name123:321

    • name456:654

    • User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.X.X Safari/537.36

    • Accept-Language:zh-CN

  • クライアントは中国本土の IP アドレスからサービスにアクセスします。

設定

  • クエリ文字列key456 パラメーターを除外します。

  • HTTP リクエストヘッダー

    • これらのヘッダー名とその値を含みます(ヘッダー名を入力してください。英字は小文字のみサポートされています)name123

    • 存在を確認(ヘッダー名を入力してください。英字は小文字のみサポートされています)name456

  • ユーザー: デバイスのタイプ国 / 地域、および言語 オプションを有効にします。

結果のキャッシュキー

キャッシュキーは、次のフラグメントを連結して形成されます:

  • http://www.example.com/image.jpg?key123=321

  • name123:321

  • name456

  • desktop

  • CN

  • Accept-Language:zh-CN

最終的なキャッシュキーは次のようになります:http://example.com/image.jpg?key123=321name123:321name456desktopCNAccept-Language:zh-CN

参考

ルール関連の機能は、実行優先度ルールの動作設定範囲が異なります。詳細については、「ルールの特性」をご参照ください。