key-rate-limit プラグインは、特定のキー値に基づいてスロットリングを実装します。キー値は、URL パラメーターまたは HTTP リクエストヘッダーから取得できます。このトピックでは、key-rate-limit プラグインを設定する方法について説明します。
プラグインの種類
スロットリングプラグイン。
フィールド
名前 | データ型 | 必須 | デフォルト値 | 説明 |
limit_by_header | string | いいえ( | - | スロットリングのキー値が取得される HTTP リクエストヘッダー。 |
limit_by_param | string | いいえ( | - | スロットリングのキー値が取得される URL パラメーター。 |
limit_keys | オブジェクトの配列 | はい | - | キー値が一致した後のスロットリング回数。 |
次の表は、limit_keys フィールドの設定項目について説明しています。
名前 | データ型 | 必須 | デフォルト値 | 説明 |
key | string | はい | - | リクエストの照合に使用されるキー値。 |
query_per_second | number | いいえ( | - | 1 秒あたりに許可されるリクエスト数。 |
query_per_minute | number | いいえ( | - | 1 分あたりに許可されるリクエスト数。 |
query_per_hour | number | いいえ( | - | 1 時間あたりに許可されるリクエスト数。 |
query_per_day | number | いいえ( | - | 1 日あたりに許可されるリクエスト数。 |
設定例
リクエストヘッダー x-ca-key からのキー値に基づいてスロットリングを実行します。
limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10 - key: 308239 query_per_hour: 10リクエストパラメーター apikey からのキー値に基づいてスロットリングを実行します。
limit_by_param: apikey limit_keys: - key: 9a342114-ba8a-11ec-b1bf-00163e1250b5 query_per_second: 10 - key: a6a6d7f2-ba8a-11ec-bec2-00163e1250b5 query_per_minute: 100ルートまたはドメイン名に対してスロットリングを有効にします。
次のプラグイン設定を
route-aルートとroute-bルートに適用します。limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10次のプラグイン設定を
*.example.comドメイン名とtest.comドメイン名に適用します。limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 100説明この例では、
route-aルートとroute-bルートは、ゲートウェイルートの作成時に指定されたルートです。クライアントリクエストがルートのいずれかと一致する場合、一致したルートに設定されているルールが有効になります。この例では、
*.example.comドメイン名とtest.comドメイン名は、リクエスト内のドメイン名と照合するために使用されます。クライアントリクエストがドメイン名のいずれかと一致する場合、一致したドメイン名に設定されているルールが有効になります。設定したルールは順番に有効になります。最初のルールが一致すると、後続のルールは無視されます。