From f0f5dea2a3d4e8050150a083d12e9106956fac7d Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Mon, 25 Nov 2024 08:38:03 +0100 Subject: [PATCH] docs: update rate limiting --- docs/middleware/rate-limit.md | 28 +++++++++++++++++++++++++--- internal/route_type.go | 2 +- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/docs/middleware/rate-limit.md b/docs/middleware/rate-limit.md index 5bc3f67..4e368f1 100644 --- a/docs/middleware/rate-limit.md +++ b/docs/middleware/rate-limit.md @@ -10,13 +10,35 @@ nav_order: 6 The RateLimit middleware ensures that services will receive a fair number of requests, and allows one to define what fair is. -Example of global rateLimit middleware +Example of rate limiting middleware + +```yaml +middlewares: + - name: rate-limit + type: ratelimit #or rateLimit + paths: + - /* + rule: + unit: minute # or hour + requestsPerUnit: 10 +``` + +Example of route rate limiting middleware + +```yaml +version: 0.1.7 +gateway: + routes: + - name: Example + rateLimit: 60 # peer minute +``` + +Example of global rate limiting middleware ```yaml version: 0.1.7 gateway: - # Proxy rate limit, it's In-Memory IP based rateLimit: 60 # peer minute routes: - name: Example -``` +``` \ No newline at end of file diff --git a/internal/route_type.go b/internal/route_type.go index 2781037..d263c10 100644 --- a/internal/route_type.go +++ b/internal/route_type.go @@ -42,7 +42,7 @@ type Route struct { HealthCheck RouteHealthCheck `yaml:"healthCheck"` // Cors contains the route cors headers Cors Cors `yaml:"cors"` - RateLimit int `yaml:"rateLimit"` + RateLimit int `yaml:"rateLimit,omitempty"` // DisableHostFording Disable X-forwarded header. // // [X-Forwarded-Host, X-Forwarded-For, Host, Scheme ]