Rate Limit NGINX
Una de les característiques més útils de Nginx és la limitació de velocitat. Permet limitar la quantitat de sol·licituds HTTP / HTTPS que un usuari pot fer en un període de temps determinat. Una sol·licitud pot ser tan simple com una sol·licitud GET
per a la pàgina d'inici d'un lloc web o una sol·licitud POST
en un formulari d'inici de sessió.
La limitació de velocitat es pot utilitzar amb fins de seguretat, per exemple, per alentir els atacs de força bruta per endevinar contrasenyes. Pot ajudar a protegir contra atacs DDoS en limitar la taxa de sol·licitud entrant a un valor típic per a usuaris reals i identificar les URL de destinació.
info En termes més generals, s'utilitza per protegir els servidors d'aplicacions ascendents de ser aclaparats per massa sol·licituds d'usuaris al mateix temps.
Configurar el paràmetre Rate Limit
La ubicació de l'arxiu a configurar, per a limitar la velocitat de la teva web, es troba en la següent ruta:
/etc/nginx/swhosting/vhosts/elteudomini.tld.conf
Has d'obrir el fitxer amb un editor d'arxius i localitzar els següents paràmetres:
Port 80 (http)
# Rate limit for each domain
limit_req_zone $binary_remote_addr zone=elteudomini.tld_rate:1m rate=150r/s;
...
server {
listen 80;
...
limit_req zone=elteudomini.tld_rate burst=50 nodelay;
...
Les línies que has de modificar, per a aplicar els valors desitjats, són:
limit_req_zone $binary_remote_addr zone=elteudomini.tld_rate:1m rate=VALORDESITJATr/s;
limit_req zone=elteudomini.tld_rate burst=VALORDESITJAT nodelay;
info Si estàs fent servir un certificat SSL per a la teva web, recorda també aplicar els valors del "Rate Limit" en l'apartat corresponent al port 443
del mateix fitxer de configuració.
Port 443 (https)
# Rate limit for each domain
limit_req_zone $binary_remote_addr zone=elteudomini.tld_rate:1m rate=150r/s;
...
server {
listen 443;
...
limit_req zone=elteudomini.tld_rate burst=50 nodelay;
...
Ara només hauràs de realitzar la següent ordre, per a assegurar-te que la nova configuració és correcta i és segur reiniciar Nginx.
nginx -t
Visualitzaràs una cosa similar en pantalla:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
En cas contrari, reverteix els canvis realitzats.
Ara només queda reiniciar Nginx perquè apliqui la nova configuració.
/etc/init.d/nginx reload
O també pots utilitzar:
/etc/init.d/nginx restart
success Amb aquests canvis tindràs la limitació de velocitat de NGINX de la teva web configurada tant per a HTTP com HTTPS.