Skip to content

Instantly share code, notes, and snippets.

@RoyalRajdeep
Last active October 9, 2019 08:54
Show Gist options
  • Save RoyalRajdeep/7235bdba5f196aa2a247d6fcc5dd2411 to your computer and use it in GitHub Desktop.
Save RoyalRajdeep/7235bdba5f196aa2a247d6fcc5dd2411 to your computer and use it in GitHub Desktop.
NGINX Rate Limit, Burst and nodelay
## https://nginx.org/en/docs/http/ngx_http_limit_req_module.html
## https://www.nginx.com/blog/rate-limiting-nginx
## Ref. https://github.com/sportebois/nginx-rate-limit-sandbox
limit_req_zone $request_uri zone=by_uri:10m rate=30r/m;
limit_req_zone $binary_remote_addr zone=by_ip:10m rate=30r/m;
server {
listen 80;
location /by-uri/burst0 {
limit_req zone=by_uri;
try_files $uri /index.html;
}
location /by-uri/burst0_nodelay {
limit_req zone=by_uri nodelay;
try_files $uri /index.html;
}
location /by-uri/burst5 {
limit_req zone=by_uri burst=5;
try_files $uri /index.html;
}
location /by-uri/burst5_nodelay {
limit_req zone=by_uri burst=5 nodelay;
try_files $uri /index.html;
}
# Same logic, but in the other rate-rimit zone
location /by-ip/burst0 {
limit_req zone=by_ip;
try_files $uri /index.html;
}
location /by-ip/burst0_nodelay {
limit_req zone=by_ip nodelay;
try_files $uri /index.html;
}
location /by-ip/burst5 {
limit_req zone=by_ip burst=5;
try_files $uri /index.html;
}
location /by-ip/burst5_nodelay {
limit_req zone=by_ip burst=5 nodelay;
try_files $uri /index.html;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment