Skip to content

Instantly share code, notes, and snippets.

@Laxman-SM
Forked from ipmb/ratelimit.nginxconf
Created July 1, 2016 07:49
Show Gist options
  • Save Laxman-SM/c456f4f643a15a2eadaee6dfac68a905 to your computer and use it in GitHub Desktop.
Save Laxman-SM/c456f4f643a15a2eadaee6dfac68a905 to your computer and use it in GitHub Desktop.
Nginx reverse proxy with rate limiting
upstream myapp {
server 127.0.0.1:8081;
}
limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;
server {
listen 443 ssl spdy;
server_name _;
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH;
ssl_session_cache builtin:1000 shared:SSL:5m;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://myapp;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location /account/login/ {
# apply rate limiting
limit_req zone=login burst=5;
# boilerplate copied from location /
proxy_pass http://myapp;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
@Laxman-SM
Copy link
Author

limit_req_zone $binary_remote_addr zone=myzone:10m rate=10r/s; or limit_req_zone $binary_remote_addr zone=myzone:50m rate=100r/s; as I understood.

@Laxman-SM
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment