Share the joy
http { limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/m; upstream myserver { server 127.0.0.1:8000; } server { listen 80; server_name myserver; location /api { limit_req mylimit; proxy_pass "http://myserver"; } } }
$binary_remote_addr, meaning the rate limiter is based on per IP. Each IP has 2 request per minute;
zone=mylimit:10m, define rate limiter name mylimit, use 10M to store it. According to Nginx doc, 1M stores 16K IPs.
rate = 2r/m, 2 request per minute for each IP