· Tutorial ·

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.

i