tencent cloud

フィードバック

ノードのキャッシュの有効期限の設定

最終更新日:2022-09-15 16:16:19

    ノードのキャッシュの有効期限の設定を利用すれば、CDNノードにキャッシュされたオリジンサーバーのリソースの有効期限を設定し、CDNノードにキャッシュされたオリジンサーバーのリソースを更新する頻度を調整することができます。業務ニーズに応じて、ディレクトリ、ファイルの拡張子、ファイルのフルパスでキャッシュするリソースの有効期限を設定することができます。

    機能説明

    CDNはノードのキャッシュの有効期限の設定で指定された有効期限に従って、CDNノードにキャッシュされたリソースが期限切れになったかを判断します。

    • CDNノードにおける、ユーザーがアクセスするリソースのキャッシュが期限切れになっていない場合、CDNノードはそのままキャッシュをユーザーに返します。
    • ユーザーのアクセスするリソースがCDNノードにキャッシュされていない場合、または、CDNノードにおける、ユーザーがアクセスするリソースのキャッシュが期限切れになった場合、CDNノードはオリジンサーバーから最新のリソースを取得しキャッシュすると同時に、ユーザーに返します。

    オリジンサーバーのリソースを更新した直後に、CDNノードでのキャッシュを更新する必要がある場合、キャッシュを更新 機能を使用し、CDNノードで期限切れになっていないキャッシュを自発的に更新することで、CDNノードでのキャッシュとオリジンサーバーのリソースとの一致性を確保します。

    注意事項

    • キャッシュの有効期限はBack-to-Originの実行頻度に影響を与えます。業務ニーズに応じてリソースのキャッシュの有効期限を設定することをお勧めします。キャッシュの有効期限が短いと、CDNが頻繁にBack-to-Originを実行し、オリジンサーバーの帯域幅が増えます。キャッシュの有効期限が長いと、CDNのキャッシュの更新が遅れ、ユーザーが最新のリソースを取得することに影響します。
    • CDNノードでは、Tencent Cloud CDNキャッシュルールと優先度に従ってリソースがキャッシュされます。ただし、CDNノードにキャッシュされたリソースは、リクエスト頻度が低い原因で、期限切れになっていなくても、ノードから削除されることがあります。
    • オリジンサーバーにおけるリソースの更新前後に、異なるリソース名を使用することをお勧めします。例えば、バージョン(img-v1.jpg、img-v2.jpg)で中身が異なるリソースに名前を付けます。これは、オリジンサーバーでリソースが変わった後、CDNノードでキャッシュが期限切れになっていないため、古いリソースをユーザーに返すことを防ぐためです。
    • 古いバージョン(標準モード)のノードのキャッシュの有効期限の設定機能を利用中の場合、高度モードでの設定をサブミットし、最新版のノードのキャッシュの有効期限の設定にアップグレードすることで、より多くの機能を利用することをお勧めします。高度モードにアップグレードした場合、元の標準モードに戻ることができないので、ご注意ください。古いバージョンのノードのキャッシュの有効期限の設定については、ノードのキャッシュの有効期限の設定(旧)をご参照ください
    • オリジンサーバーでレスポンスヘッダーCache-Controlを設定することで、CDNノードにおけるキャッシュの有効期限(キャッシュオプション:オリジナルサーバーと同様)を制御することができます。なお、CDNノードでレスポンスヘッダーCache-Controlがユーザーに渡されるため、ブラウザのキャッシュの有効期限に対する制御が実現できます。CDNノードでブラウザのキャッシュの有効期限を設定する場合、ブラウザのキャッシュの有効期限の設定 で、CDNノードからユーザーに渡すレスポンスヘッダーCache-Controlを指定してください。

    設定説明

    操作プロセス

    1. CDNコンソールにログインします。
    2. 左側のメニューでドメイン名管理をクリックし、ドメイン名管理リストへ進みます。
    3. 設定するドメイン名を選択し、管理をクリックして、ドメイン名の設定ページへ進みます。
    4. キャッシュ設定をクリックし、キャッシュ設定タグに切り替えます。タグでノードキャッシュ期限の設定を確認できます。

    5. ルールを新規作成をクリックし、新規ルールページへ進み、ノードのキャッシュの有効期限の設定を追加します。

      設定項目 説明
      タイプ すべてのファイル、ファイルの拡張子、ファイルのディレクトリ、フルパスのファイル、ホームページを設定することが可能です。
      すべてのファイル:すべてのファイルを指定してルールを設定します。デフォルトルールとします。
      ファイルの拡張子:ファイルの拡張子を指定してルールを設定します。
      ファイルのディレクトリ:ファイルのディレクトリを指定してルールを設定します。
      フルパスのファイル:ファイルのフルパスを指定してルールを設定します。
      ホームページ:ドメイン名のルートディレクトリを指定してルールを設定します。
      詳細 選択したファイルタイプによって、入力する内容には制約があります。
      タイプがすべてのファイルの場合、すべてのファイルとします。
      タイプがファイルの拡張子の場合、ファイルの拡張子を入力できます。拡張子が複数ある場合、「;」で区切ります。例:jpg;png;css。
      タイプがファイルのディレクトリの場合、ファイルのディレクトリを入力できます。「/」で終わらないでください。ディレクトリが複数ある場合、「;」で区切ります。例:/test;/a/b/c。
      タイプがフルパスのファイルの場合、ファイルのフルパスを入力できます。フルパスが複数ある場合、「;」で区切ります。例:/index.html;/test/.jpg。
      キャッシュオプション オリジンサーバーと同様、キャッシュを格納する、キャッシュを格納しないルールで設定することが可能です。
      オリジンサーバーと同様:オリジンサーバーのレスポンスヘッダーCache-Controlに応じて、CDNノードのキャッシュの有効期限を設定します。ヒューリスティックキャッシュへの設定をサポートします。
      キャッシュを格納する:CDNノードのキャッシュの有効期限を設定します。強制キャッシュへの設定をサポートします。
      キャッシュを格納しない:CDNノードでリソースをキャッシュしないことを設定します。

    Tencent Cloud CDNキャッシュルールと優先度

    キャッシュオプション:オリジンサーバーと同様

    CDNノードで、オリジンサーバーのレスポンスヘッダーCache-Controlに応じてキャッシュの有効期限を設定します。

    • オリジンサーバーのレスポンスヘッダーCache-Controlのフィールドがmax-ageである場合、max-ageの値に応じてCDNノードのキャッシュの有効期限を設定します。例えば、Cache-Control:max-age=300の場合、キャッシュの有効期限が300秒になります。
      • オリジンサーバーのレスポンスヘッダーCache-Controlのフィールドがno-cache 、no-storeまたはprivateである場合、CDNノードでリソースをキャッシュしません。
      • オリジンサーバーのレスポンスヘッダーにCache-ControlまたはExpiresがない場合、ヒューリスティックキャッシュの状態に応じてキャッシュルールを設定します。詳しくは以下のとおりです:
        • ヒューリスティックキャッシュが無効になり、オリジンサーバーのレスポンスヘッダーにCache-ControlまたはExpiresがない場合、キャッシュの有効期限は600秒とします。
        • ヒューリスティックキャッシュが有効になり、オリジンサーバーのレスポンスヘッダーにCache-ControlまたはExpiresがない場合、以下のルールに従ってヒューリスティックキャッシュの有効期限を設定します。
          i. デフォルト設定:オリジンサーバーのレスポンスヘッダーにLast-Modifiedがある場合、キャッシュの有効期限は(現在の時間-Last-Modified)* 0.1とします。オリジンサーバーのレスポンスヘッダーにLast-Modifiedがない場合、キャッシュの有効期限はデフォルトで600秒とします。

          ii. カスタムポリシー:ヒューリスティックキャッシュの有効期限を設定できます。

    キャッシュオプション:キャッシュを格納する

    CDNノードのキャッシュの有効期限を設定します。

    • 強制キャッシュの無効化:
      • オリジンサーバーのレスポンスヘッダーCache-Controlのフィールドがmax-ageである場合、または、オリジンサーバーのレスポンスヘッダーにCache-Controlがない場合、設定したCDNノードのキャッシュルールに従ってキャッシュを実行します。
      • オリジンサーバーのレスポンスヘッダーCache-Controlのフィールドがno-cache 、no-storeまたはprivateである場合、CDNノードでリソースをキャッシュしません。

    • 強制キャッシュの有効化:オリジンサーバーのレスポンスヘッダーCache-Controlを無視し、設定したCDNノードのキャッシュルールに従ってキャッシュを実行します。

    キャッシュオプション:キャッシュを格納しない

    CDNノードでリソースをキャッシュしないことを設定します。このリソースへの各ユーザーリクエストに対して、CDNはそのままBack-to-Originを実行しリソースを取得してユーザーに返します。


    キャッシュルールが複数存在する場合の優先度

    同時に複数のキャッシュルールを設定した場合、上位のルールに比べ、下位のルールの優先度が高いです。優先度を調整をクリックし、キャッシュルールをドラッグして優先順を調整することができます。

    推奨設定

    • よく更新しないスタティックファイル(ピクチャータイプ、アプリケーションダウンロードタイプなど)の場合、キャッシュの有効期限に30日を設定することをお勧めします。

    • 頻繁に更新するスタティックファイル(js、cssなど)の場合、業務の更新頻度に応じてキャッシュの有効期限を設定することをお勧めします。

    • ダイナミックファイル(php、jsp、asp、aspxなど)の場合、キャッシュを格納しないことを設定しなければなりません

    • サイトへのログイン(wordpressバックグランドから/wp-adminにアクセスするなど)やインターフェース検索などオリジンサーバーと直接通信する必要がある他のリクエストの場合、キャッシュを格納しないことを設定しなければなりません。そうしないと、アクセスエラーが発生する可能性があります。

      設定の制約

    • 1つのドメイン名に対して、キャッシュルールを最大100件まで追加できます。

    • ルールが複数存在する場合、下位のルールの優先度は上位のルールより高いです。

    • 1つのファイルの拡張子/ファイルのディレクトリ/フルパスのファイルルールでは、最大100グループのコンテンツを入力できます。異なるコンテンツを「;」で区切ります。例:ファイル拡張子の場合、jpg;pngになります。

    • いかなるルールも設定していない場合、または、リクエストが設定されたルールをヒットしなかった場合、CDNノードでオリジンサーバーのレスポンスヘッダーCache-Controlに応じてキャッシュの有効期限を設定します。オリジンサーバーのレスポンスヘッダーにCache-Controlフィールドがない場合、CDNノードでこのリソースのキャッシュの有効期限はデフォルトで600sとします。

    • CDNノードでは、GET、HEADタイプのリクエストだけをキャッシュし、 POSTやOPTIONSなど他のタイプのリクエストをキャッシュしません。

    設定例

    例1

    元のキャッシュルールは、「ファイルの拡張子がphp;jsp;asp;aspxのリソースをキャッシュせず、他のファイルは全部30日とする」です。



    次のルール「ファイルの拡張子がjpg、pngのリソースは10日とし、かつ、オリジンサーバーのレスポンスヘッダーCache-Controlを無視する」を追加します。つまり、強制キャッシュを有効にします。他のすべてのファイルのキャッシュルールは、「オリジンサーバーと同様」に変更します。

    1. ルールを新規作成をクリックし、タイプはファイルの拡張子、内容はjpg;png、キャッシュオプションは「キャッシュを格納する」、キャッシュの有効期限は10日、強制キャッシュは有効として、OKをクリックします。



    2. すべてのファイルのキャッシュルールを選択し、変更をクリックし、キャッシュオプションを「オリジンサーバーと同様」に変更して、OKをクリックします。



    3. 変更後のキャッシュルールは以下のとおりです:

      • ファイルの拡張子がjpg、pngのリソースのキャッシュの有効期限は10日とし、強制キャッシュを有効にします。

      • ファイルの拡張子がphp;jsp;asp;aspxのリソースをキャッシュしません。

      • 他のすべてのファイルのキャッシュの有効期限は30日とします。



        実際のキャッシュ状況は以下のとおりです:
      • オリジンサーバーのレスポンスヘッダーCache-Controlのフィールドがno-cache、no-storeまたはprivateにもかかわらず、ノードにおける、www.test.com/abc.jpgリソースのキャッシュの有効期限は10日です。

      • www.test.com/def.phpリソースはノードにキャッシュされません。

        例2

    WordPressを使用してサイトを構築したノードに対するキャッシュの有効期限の設定アドバイス

    • バックグラウンドからログインする/wp-adminディレクトリ配下のリソースに対して、キャッシュしないことを設定しなければなりません。そうしないと、バックグラウンドからのログインに関するリソースがキャッシュされ、ログインエラーが発生します。他にインターフェース関連のリソースに対しても、キャッシュしないことを設定してください。
    • 拡張子がphp;jsp;asp;aspxであるダイナミックリソースに対して、キャッシュしない(CDNのデフォルトキャッシュルール)ことを設定してください。
    • 拡張子がhtml;js;cssのファイルは頻繁に更新されるため、更新頻度に応じてキャッシュの有効期限を設定してください。キャッシュの有効期限に7日を設定し、強制キャッシュを無効にすることをお勧めします。
    • 他のすべてのファイルのキャッシュの有効期限は30日とします(CDNのデフォルトキャッシュルール)。

    CDNのデフォルトキャッシュルールに加えて、以下の手順に従ってルールを追加します:

    1. ルールを新規作成をクリックし、タイプはディレクトリ、内容は/wp-admin、キャッシュオプションは「キャッシュを格納しない」として、OKをクリックします。

    2. ルールを新規作成をクリックし、タイプはファイルの拡張子、内容はhtml;js;css、キャッシュオプションは「キャッシュを格納する」、キャッシュの有効期限は7日、強制キャッシュは無効として、OKをクリックします。

    3. 下位のルールの優先度が上位のルールより高いため、優先度を調整をクリックし、「/wp-adminディレクトリをキャッシュしないルール」を最下位にドラッグし、優先度を最高にします。

    4. 変更後のキャッシュルールは以下のとおりです:
      • /wp-adminディレクトリ配下のすべてのリソースをキャッシュしません。
      • ファイルの拡張子がhtml;js;cssのリソースのキャッシュの有効期限は7日とします。
      • ファイルの拡張子がphp;jsp;asp;aspxのリソースをキャッシュしません。
      • 他のすべてのファイルのキャッシュの有効期限は30日とします。

    よくあるご質問

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)