Command Palette

Search for a command to run...

Rate limiter

From client to backend

Explore how the reverse proxy checks an allowance before a request reaches your service.

Open Load Tester

Your website & policies

Configure an upstream and one or more route rules. Each request uses one matching policy.

Rule 1
default-ip
Configuration preview & deployment

Apply updates this illustration only. To run it, download the JSON, replace configs/proxy.json, and restart the Docker gateway. Configure Redis through REDIS_URL. User and API-key policies require verified bearer credentials in RATE_LIMIT_CREDENTIALS; use credential IDs in the example below, not secret tokens.

Rules select policies for different routes. Simultaneous IP + API-key enforcement on the same request is not implemented in the gateway. Docker startup also checks for conflicting route patterns.

{
  "version": 1,
  "listen": ":8080",
  "upstream": "https://hiteshsolanki.com/",
  "storage": {
    "mode": "ram",
    "namespace": "demo",
    "timeout": "500ms"
  },
  "cleanup_interval": "1s",
  "upstream_timeout": "10s",
  "anonymous_tenant": "public",
  "trusted_proxies": [],
  "forward_authorization": false,
  "routes": [
    {
      "pattern": "/",
      "policy": {
        "id": "default-ip",
        "identity": "ip",
        "per_route": false
      },
      "limit": 3,
      "window": "10s",
      "max_keys": 10000
    }
  ]
}

Request architecture

Fixed window · IP address · 1 policy
Storage mode
Select a component to explore its role
Each identity gets its own allowance
Docker gateway
Read / update counter
Response returns through proxy
Rejected → back to client429 when the allowance is exhausted. 503 when Redis or rate-limit capacity is unavailable. These requests stop at the gateway.

Decide before forwarding

The Docker gateway matches a route policy, resolves the identity, and checks its allowance. Allowed requests retain their method, path, query, and body when forwarded. A rejection returns directly to the client.

Walk through a request

Local illustration · no network traffic. Reset advances to a fresh window for the selected policy.

Changing the example identity gives it a separate counter. User and credential IDs here are illustrative, not secret API tokens.

3 / 3 remaining
Ready to simulate

Try 4 requests for the same identity to see this policy limit in action.

0 attempted · 0 forwarded in this policy window

Recorded hiteshsolanki.com verification

6 Nov 2026 · 66 flow checks passed
Direct to website
42.19 ms
Median full response · 5 warm GETs
Through RAM proxy
51.61 ms
Median full response · 5 warm GETs
Through Redis proxy
70.09 ms
Median full response · 5 warm GETs

Historical test against hiteshsolanki.com, not live telemetry. Public timings include network, TLS, and transfer variability. In a separate 200-sample controlled test, median added time was 1.98 ms for RAM and 2.35 ms for Redis, including Docker networking.