· Tutorial ·

Rate Limit NGINX

Una de las características más útiles de NGINX es la limitación de velocidad. Permite limitar la cantidad de solicitudes HTTP/HTTPS que un usuario puede hacer en un período de tiempo determinado. Una solicitud puede ser tan simple como una solicitud GET para la página de inicio de un sitio web o una solicitud POST en un formulario de inicio de sesión.

La limitación de velocidad se puede utilizar con fines de seguridad, por ejemplo, para ralentizar los ataques de fuerza bruta para adivinar contraseñas. Puede ayudar a proteger contra ataques DDoS al limitar la tasa de solicitud entrante a un valor típico para usuarios reales e identificar las URL de destino.

info En términos más generales, se utiliza para proteger a los servidores de aplicaciones ascendentes de ser abrumados por demasiadas solicitudes de usuarios al mismo tiempo.

Configurar el parámetro Rate Limit

La ubicación del archivo a configurar, para limitar la velocidad de tu web, se encuentra en la siguiente ruta:

/etc/nginx/swhosting/vhosts/tudominio.tld.conf

Debes abrir el fichero con un editor de archivos y localizar los siguientes parámetros:

Puerto 80 (http)

# Rate limit for each domain  
limit_req_zone $binary_remote_addr zone=tudominio.tld_rate:1m rate=150r/s;  
   
...  
    
server {  
listen 80;
	
...
      
limit_req zone=tudominio.tld_rate burst=50 nodelay;  
      
...

Las líneas que debes modificar, para aplicar los valores deseados, son:

limit_req_zone $binary_remote_addr zone=tudominio.tld_rate:1m rate=VALORDESEADOr/s;

limit_req zone=tudominio.tld_rate burst=VALORDESEADO nodelay;

info Si estás usando un certificado SSL para tu web recuerda también aplicar los valores del "Rate Limit" en el apartado correspondiente al puerto 443 del mismo fichero de configuración.

Puerto 443 (https)

# Rate limit for each domain  
limit_req_zone $binary_remote_addr zone=tudominio.tld_rate:1m rate=150r/s;  
      
 ...  
	
server {  
listen 443;
	
...
      
limit_req zone=tudominio.tld_rate burst=50 nodelay;  
      
...

Ahora solo deberás realizar el siguiente comando, para asegurarte que la nueva configuración es correcta y es seguro reiniciar Nginx.

nginx -t

Visualizarás algo similar en pantalla:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

De lo contrario, revierte los cambios realizados.

Ahora solo queda reiniciar Nginx para que aplique la nueva configuración.

/etc/init.d/nginx	reload

O también puedes usar:

/etc/init.d/nginx restart

success Con estos cambios tendrás la limitación de velocidad de NGINX de tu web configurada tanto para HTTP como HTTPS.

i