パラメータ無視を有効にすると、CDN エッジノードはリクエスト URL からクエリパラメータ (? 以降の部分) を削除します。これにより、異なるパラメータを持つリクエストが同じキャッシュにヒットし、キャッシュヒット率が向上します。本トピックでは、パラメータ無視の設定方法、代替機能との比較、および使用に関する推奨事項について説明します。
機能の比較
カスタムキャッシュキーはパラメータ無視と競合します。パラメータ無視とカスタムキャッシュキーの両方を同時に設定した場合、パラメータ無視は無効になります。
カスタムキャッシュキーは、キャッシュキーの設定においてパラメータ無視を置き換えることができ、より包括的な機能を提供します。最初にカスタムキャッシュキーを使用することを推奨します。設定の比較:
シナリオ
パラメータ無視
カスタムキャッシュキー
キャッシュキーからすべてのリクエストパラメータを無視
[パラメータ無視] を [はい] に設定し、[指定パラメータの保持] を空のままにします。
リクエストパラメータ処理ルールを追加します:
アクション:保持
パラメータ名:存在しない任意のパラメータ名 (example-argument など) を設定します。
キャッシュキーにリクエストパラメータ key1 のみを保持
[パラメータ無視] を [はい] に設定し、[指定パラメータの保持] を
key1に設定します。リクエストパラメータ処理ルールを追加します:
アクション:保持
パラメータ名:key1
キャッシュキーからリクエストパラメータ key1 のみを削除
key1のパラメータ設定を削除します。リクエストパラメータ処理ルールを追加します:
アクション:削除
パラメータ名:key1
オリジンパラメータの書き換えは、オリジンリクエストの書き換えにおいてパラメータ無視を置き換えることができ、より包括的な機能を提供します。最初に「オリジンパラメータの書き換え」を使用することを推奨します。
機能の概要
パラメータ無視
機能 | シナリオ |
リクエスト URL からクエリパラメーター ( | URL パラメータがリソースコンテンツと関連しない場合 (ユーザー UID、参照元、プロモーションコードなど) は、パラメータ無視を有効にします。たとえば、次の2つのリクエストは同じリソースにアクセスしますが、異なる UID を持っています: ユーザー A: ユーザー B: パラメータ無視を設定しない場合、CDN エッジノードはこれらを異なるリソースとして扱い、同じキャッシュを共有できないため、各リクエストに対してオリジンフェッチが必要になります。パラメータ無視を有効にすると、CDN エッジノードはパラメータを削除し、 |
URL 署名はパラメータ無視よりも優先されます。タイプ A 署名は、署名に URL パラメータを含めます。CDN は最初に認証を実行し、検証が成功した後にのみキャッシュコピーとして保存します。
オリジンパラメータの保持
機能 | シナリオ |
オリジンフェッチ時にすべての元の URL パラメータを保持し、オリジンサーバーが重要なユーザー情報を受信できるようにします。 | パラメータ無視が有効になっている場合、CDN エッジノードはデフォルトでパラメータを削除した URL を使用してオリジンフェッチを行います。上記の例では、ユーザー A とユーザー B の両方が |
操作手順
CDN コンソールにログインします。
左側のナビゲーションペインで、ドメイン名 をクリックします。
ドメインリストで対象のドメイン名をクリックし、左側のナビゲーションペインでパフォーマンスの最適化をクリックして、パフォーマンス最適化設定ページに移動します。
「パラメーターを無視」セクションで変更をクリックしてモードを選択し、必要に応じて設定を完了します。
設定が完了したら、OK をクリックして保存します。
モードを切り替えると、既存の設定がクリアされます。
パラメータ無視の設定を変更した後、エッジノードにキャッシュされたファイルは自動的に更新されません。新しい設定を適用し、古いキャッシュを消去するには、コンソールで URL のリフレッシュまたは ディレクトリのリフレッシュを実行する必要があります。それ以外の場合、ユーザーは古いポリシーでキャッシュされたコンテンツにアクセスする可能性があり、アクセスの問題が発生する可能性があります。
モード:指定パラメータの保持
パラメータ | 説明 | 例 |
[パラメーターを無視] |
| 元の URL が
|
[指定されたパラメーターを保持] | 保持するパラメータ名を入力します。最大 10 個のパラメータをカンマ (,) で区切って指定できます。 | |
[オリジンパラメーターの保持] |
| |
[ルール条件] | ルール条件は、ユーザーリクエスト内のさまざまなパラメーター情報を識別します。これにより、そのリクエストに対して設定が有効になるかどうかが決まります。 重要
ルール条件を参照する場合、機能自体の設定順序ではなく、関連するルール条件の優先順位に基づいてマッチングされます。
|
モード:指定パラメータの削除
パラメータ | 説明 | 例 |
[指定されたパラメーターの削除] | 削除するパラメータ名を入力します。最大 10 個のパラメータをスペースで区切って指定できます。 | 元の URL が
|
[オリジンパラメーターの保持] |
| |
[ルール条件] | ルール条件は、ユーザーリクエスト内のさまざまなパラメーター情報を識別します。これにより、そのリクエストに対して設定が有効になるかどうかが決まります。 重要
ルール条件を参照する場合、機能自体の設定順序ではなく、関連するルール条件の優先順位に基づいてマッチングされます。
|
使用シナリオの例
パラメータ無視を使用した URL パラメータによるキャッシュバイパス攻撃の軽減
攻撃者やクローラーが同じリソースをリクエストする際にランダムな無意味なパラメータ (?timestamp=xxx や ?random=xxx など) を追加すると、CDN は各パラメータ化されたリクエストを一意のリソースとして扱います。これにより、キャッシュヒット率が低下し、オリジントラフィックが急増します。
パラメータ無視を有効にする (またはすべてのパラメータを無視するように設定する) と、異なるランダムパラメータを持つリクエストが同じキャッシュにヒットし、オリジンの負荷を効果的に削減できます。たとえば、パラメータ無視を有効にすると、次のリクエストは同じキャッシュにヒットします:
http://example.com/page.html?t=123456http://example.com/page.html?t=789012http://example.com/page.html?random=abc
パラメータ無視を有効にすると、これらすべてのリクエストは http://example.com/page.html を使用してキャッシュを検索し、URL パラメータによるキャッシュバイパス攻撃を効果的に軽減します。