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

:カスタムキャッシュキーの設定

最終更新日:Apr 08, 2025

キャッシュキーは、Dynamic Route for CDN (DCDN) ノードにキャッシュされているファイルの一意のIDです。 デフォルトでは、キャッシュキーはパラメーターを含むリクエストのURLです。 DCDNを使用すると、同じリソースファイル宛てのリクエストのキャッシュキーを同じキャッシュキーに書き換えることができます。 これにより、キャッシュスペースを節約し、オリジンサーバーにリダイレクトされるリクエストの数を減らすことができます。 このトピックでは、カスタムキャッシュキーを設定する方法について説明します。

シナリオ

シナリオ 1:

リクエスト内のURLには、同じリソースファイルを取得するために使用される場合でも、複雑なパラメータが含まれる場合があります。 URLパラメーターが異なるため、DCDNノードはこれらのリクエストを、異なるリソースファイルを取得するために送信されたリクエストとして扱い、すべてのリクエストのリソースファイルをキャッシュします。 その結果、多数のリクエストがオリジンサーバーにリダイレクトされます。 Figure 1
指定したタイプのリクエストにキャッシュキーを設定して、オリジンサーバーにリダイレクトされるリクエストの数を減らすことができます。 Figure 2

シナリオ 2:

リクエストは同じURLを持ちます。 この場合、DCDNはこれらのリクエストを、同じリソースファイルを取得するために送信されたリクエストとして扱います。 ただし、クライアントのオペレーティングシステムは、これらの要求のHTTPヘッダーのクライアントフィールドで指定されます。 指定されたオペレーティングシステムに基づいて、異なるリソースファイルを返す必要がある場合があります。 Scenario 1
この問題を解決するには、2つのキャッシュキーを設定し、クライアントフィールドの値をキャッシュキーに含めてから、キャッシュキーを使用してリクエストを区別します。 Scenario 2

手順

  1. にログインします。 DCDNコンソール
  2. On theドメイン名ページで、管理するドメイン名を見つけて、設定[アクション] 列に表示されます。
  3. 指定したドメイン名の詳細ページの左側のナビゲーションウィンドウで、キャッシュ設定 をクリックします。
  4. [カスタムキャッシュキー] タブで、キャッシュキーを設定します。
    説明
    • 変更できるのは、キャッシュキー内のURI、パラメーターアクション、およびHTTPヘッダーのみです。 カスタム変数がサポートされています。 変数を追加して、リクエストからフィールドを取得できます。 キャッシュキーは、URI、パラメーターアクション、HTTPヘッダー、およびカスタム変数で構成されます。
    • カスタムキャッシュキーは、オリジンサーバーにリダイレクトされるリクエストのURLを変更しません。 カスタムキャッシュキーは、これらのリクエストのキャッシュ識別子のみを変更します。 オリジンサーバーにリダイレクトされ、クライアントから送信されたリクエストには同じコンテンツが含まれます。
    Custom cache keys
  5. [OK] をクリックします。

例:

URI

次の図では、URI http://example.com/a/b/test.jpg および http://example.com/a/b/c/test.jpg 宛てのリクエストは、同じリソースファイルを取得するために送信されたリクエストと見なされます。 リソースファイルのキャッシュキーを http://example.com/c/test.jpg します。 URI

パラメーター操作

次の図では、リクエストは http://example.com/a/b/test.jpg?delete_par=1&modify_par=1 向けです。 パラメーターadd_par=1がURLに追加され、パラメーターdelete_parがURLから削除され、パラメーターmodify_parの値が2に変更されます。 最終的なURLは http://example.com/a/b/test.jpg?modify_par=2&add_par=1 です。
重要 パラメーターアクションの場合、同じ変数に適用されるルールの優先順位は、追加> 削除> 保持のみ> 変更です。
Parameter actions

HTTP ヘッダー

この例では、HTTPヘッダーのUser-AgentフィールドとAccept-Languageフィールドの値がキャッシュキーに含まれています。 たとえば、http://example.com/a/b/test.jpg 向けのリクエストがUser-Agent=Mozilla/5.0 (Linux; X11)Accept-Language=enをヘッダーに含む場合、リクエストのキャッシュキーは http://example.com/a/b/test.jpgMozilla/5.0(Linux; X11)enになります。 HTTP Header

カスタム変数

例 1:

変数の名前はlanguageです。 変数のソースはRequest Header、ソースフィールドはAccept-Language、マッチルールは ([% w]+) 、([% w]+) 、変数式は $1aaです。 Custom variables
http://example.com/a/b/test.jpg 宛てのリクエストにHTTPヘッダーAccept-Language=en,chが含まれている場合、一致ルールは変数式の値en$1に割り当てます。 文字列aaは、変数式の末尾にも追加されます。 その結果、エイリアスlanguageを持つ変数enaaが生成されます。 DCDNが変数をURLに追加した後、最終的なキャッシュキーは次の http://example.com/a/b/test.jpgenaa になります。
説明 変数式の $nの定義は、No. n個のブラケット。 例1では、Accept-Language=en,chであり、一致ルールは ([% w]+),([% w]+) です。 したがって、$1=enおよび $2=chである。

例 2:

カスタム変数の名前が期限切れです。 変数のソースはRequest Cookie、ソースフィールドはa、一致ルールは [% w]+ :(.*) 、変数式は $1です。 Custom variables

http://example.com/a/b/test.jpg 宛てのリクエストにCookie a=expired_time:12635187のcookieが含まれている場合、一致ルールは変数式の値12635187$1に割り当てます。 変数のエイリアスが期限切れです。 最終的なキャッシュキーが http://example.com/a/b/test.jpg12635187 される。

例 3:

URIルールとカスタム変数を同時に設定する

URI:

すべてのリクエストURIの /abc/.*/abc/abcに変換します。 Example 3

カスタム変数:

カスタム変数の名前はtestnameです。 変数のソースはPath、一致ルールは /abc/xyz/(.*) 、変数式は $1です。 Example 3

リクエストが http://example.com/abc/xyz/abc/test.jpg 向けの場合、URLはURIルールに基づいて http://example.com/abc/test.jpg に変更されます。 URLは /abc/xyz/(.*) と一致します。 この場合、$1に値abcが割り当てられ、キャッシュキーに追加されます。 生成されたキャッシュキーを http://example.com/abc/test.jpgabc する。 したがって、より複雑なキャッシュロジックをサポートするために、2つのルールが同時に適用されます。