Skip to content

Latest commit

 

History

History
51 lines (43 loc) · 3.27 KB

File metadata and controls

51 lines (43 loc) · 3.27 KB
title keywords description
Key-based Local Rate Limiting
higress
key rate limit
Configuration reference for Key local rate limiting plugin

Functional Description

The key-rate-limit plugin implements rate limiting based on specific key values, which can originate from URL parameters or HTTP request headers.

Running Properties

Plugin execution phase: default phase Plugin execution priority: 10

Configuration Fields

Name Data Type Required Default Value Description
limit_by_header string Optional, choose one from limit_by_header, limit_by_param - Configuration for the source of the rate limiting key value (HTTP request header name)
limit_by_param string Optional, choose one from limit_by_header, limit_by_param - Configuration for the source of the rate limiting key value (URL parameter name)
limit_keys array of object Required - Configuration for the rate limiting frequency based on matched key values

Explanation of each configuration field in limit_keys

Name Data Type Required Default Value Description
key string Required - Matched key value
query_per_second number Optional, choose one from query_per_second, query_per_minute, query_per_hour, query_per_day - Allowed number of requests per second
query_per_minute number Optional, choose one from query_per_second, query_per_minute, query_per_hour, query_per_day - Allowed number of requests per minute
query_per_hour number Optional, choose one from query_per_second, query_per_minute, query_per_hour, query_per_day - Allowed number of requests per hour
query_per_day number Optional, choose one from query_per_second, query_per_minute, query_per_hour, query_per_day - Allowed number of requests per day

Configuration Examples

Identify request parameter apikey for differentiated rate limiting

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

Identify request header x-ca-key for differentiated rate limiting

limit_by_header: x-ca-key
limit_keys:
- key: 102234
  query_per_second: 10
- key: 308239
  query_per_hour: 10