キャッシュ・ルール

キャッシュ・ルールを使用すると、Webページや特定のファイル・タイプなど、リクエストされたコンテンツをOracle Cloud Infrastructureのエッジ・サーバー上に選択的にキャッシュできます。

コンソールの使用

キャッシュ・ルールを作成するには
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「Web Application Firewall」で、「ポリシー」をクリックします。
  2. キャッシュ・ルールを追加するWAFポリシーの名前をクリックします。WAFポリシーの概要が表示されます。

  3. 「キャッシュ・ルール」をクリックします。
  4. 「キャッシュ・ルールの作成」をクリックします。
  5. 「キャッシュ・ルールの作成」ダイアログ・ボックスで、次のように入力します:
    • 名前: アクセス・ルールの一意の名前。
    • キャッシュ・ルールのアクション: 次のオプションのいずれかを選択します:
      • キャッシュ: ルールの基準に一致した場合は、リクエストされたコンテンツがキャッシュされます。
        • キャッシュ期間: キャッシュ・ルールのコンテンツをキャッシュする期間。
        • 時間単位: キャッシュ期間の時間単位。
        • クライアント・キャッシュの有効化: このチェック・ボックスを選択して、ユーザーのブラウザにコンテンツをキャッシュする期間を指定します。
      • キャッシュをバイパス: ルールの基準に一致した場合は、リクエストがキャッシュをバイパスしてオリジンに転送されることを許可します。
    • 条件: アクションを実行するために一致する必要がある条件およびURLアドレスを選択します。設定したアクションが実行されるには、条件が少なくとも1つ一致している必要があります。
  6. 作成」をクリックします。キャッシュ・ルールがキャッシュ・ルール・リストに追加されます。
キャッシュ・ルールを編集するには
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「Web Application Firewall」で、「ポリシー」をクリックします。
  2. キャッシュ・ルールを編集するWAFポリシーの名前をクリックします。WAFポリシーの概要が表示されます。

  3. 「キャッシュ・ルール」をクリックします。
  4. 更新するキャッシュ・ルールのチェック・ボックスを選択します。
  5. 「アクション」ドロップダウン・メニューから「編集」を選択します。
  6. 「キャッシュ・ルールの編集」ダイアログ・ボックスで、必要な更新を行います:
  7. 「変更の保存」をクリックします
キャッシュ・ルールを削除するには
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「Web Application Firewall」で、「ポリシー」をクリックします。
  2. キャッシュ・ルールを削除するWAFポリシーの名前をクリックします。WAFポリシーの概要が表示されます。
  3. 「キャッシュ・ルール」をクリックします。
  4. 削除するキャッシュ・ルールのチェック・ボックスを選択します。
  5. 「アクション」ドロップダウン・メニューから「削除」を選択します。
  6. 確認ダイアログ・ボックスで「削除」をクリックします。
キャッシュをパージするには
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「Web Application Firewall」で、「ポリシー」をクリックします。
  2. キャッシュをパージするWAFポリシーの名前をクリックします。WAFポリシーの概要が表示されます。

  3. 「キャッシュ・ルール」をクリックします。
  4. 「アクション」ドロップダウン・メニューから「キャッシュのパージ」を選択します。
  5. 「キャッシュのパージ」ダイアログ・ボックスで、パージする条件とURLアドレスを選択し、「パージ」をクリックします。

使用可能なキャッシュ・ルール基準

キャッシュ・ルールの基準によって、リクエストされたコンテンツをキャッシュするかどうかが決定されます。

  • URL_IS - リクエストされたURLパスと問合せを連結したものがvalueフィールドのコンテンツと同じである場合は、一致します。たとえば、このルールがwww.example.com/productsのコンテンツをキャッシュするように設定されている場合、www.example.com/productsに対するHTTPリクエストのみがキャッシュされます。
  • URL_STARTS_WITH - リクエストされたURLパスと問合せを連結したものがvalueフィールドのコンテンツで始まる場合は、一致します。たとえば、このルールがwww.example.com/productsのコンテンツをキャッシュするように設定されている場合、www.example.com/productsで始まるURLをリクエストするすべてのHTTPリクエストはキャッシュされ、後続のリクエスト(www.example.com/products/new-product www.example.com/products/old-productに対するリクエストを含む)は、キャッシュからコンテンツを受け取ります。
  • URL_PART_ENDS_WITH - リクエストされたURLパスと問合せを連結したものがvalueフィールドのコンテンツで終わる場合は、一致します。たとえば、ルールが/product.jpgで終わるURLからのコンテンツをキャッシュするように設定されている場合、URL www.example.com/products/new-product/product-banner.jpgおよびwww.example.com/products/old-product/product-banner.jpgに対するHTTPリクエストはキャッシュされ、後続のリクエストはキャッシュからコンテンツを受け取ります。
  • URL_PART_CONTAINS - リクエストされたURLパスと問合せを連結したものにvalueフィールドのコンテンツが含まれる場合は、一致します。ルールが/product-bannerを含むURLからのコンテンツをキャッシュするように設定されている場合、URL www.example.com/products/new-product/product-banner/blue.jpgおよびwww.example.com/products/new-product/product-banner/red.jpgに対するHTTPリクエストはキャッシュされ、後続のリクエストはキャッシュからコンテンツを受け取ります。

使用可能なキャッシュ・ルール・アクション

キャッシュ・ルールは、リクエストの受信時に使用可能な2つのアクションのいずれかを実行するように設定できます:

  • CACHE - ルールの基準と一致するリクエストはキャッシュされ、後続のリクエストはキャッシュからコンテンツを受け取ります。
  • BYPASS_CACHE - ルールの基準と一致するリクエストは、キャッシュをバイパスしてオリジンに送信されます。

キャッシュ継続時間

コンテンツは、指定された期間Oracle Cloud Infrastructureのエッジ・サーバーにキャッシュすることも、クライアントがローカルにキャッシュすることもできます。期間は、cachingDurationおよびclientCachingDurationフィールドにISO 8601拡張形式で設定します。

キャッシュ・ルールの例

[
  {
    "action": "CACHE",
    "cachingDuration": "PT20M",
    "clientCachingDuration": "PT20M",
    "criteria": [
      {
        "condition": "URL_IS",
        "value": "/path/to-cache"
      }
    ],
    "isClientCachingEnabled": true,
    "name": "Caching Rule 1"
  },
  {
    "action": "BYPASS_CACHE",
    "criteria": [
      {
        "condition": "URL_PART_ENDS_WITH",
        "value": "urp-part-not-to-cache"
      }
    ],
    "isClientCachingEnabled": false,
    "name": "Do not cache"
  }
]

ベスト・プラクティス

キャッシュ・ルールを指定する順序は重要です。ルールは指定した順序で処理され、リクエストの処理中には最初に一致するルールが使用されます。キャッシュをバイパスするルールを順序の最上位に追加し、キャッシュ・ルールをバイパス・ルールより下位に追加することをお薦めします。

キャッシュのパージ

キャッシュは、PurgeCache操作を使用してパージできます。リソースのURLパスを指定してキャッシュを選択的にパージすることも、APIに渡すリソースを指定しないでWAFのすべてのキャッシュをパージすることもできます。

指定したリソースのキャッシュをパージします:

{
  "resources": [
    "/path/to-purge",
    "/multiple-paths"
  ]
}