La razón por la que quiero hacer esto es porque los usuarios desarrollan contra nuestra API con JavaScript, y algunos desarrolladores se equivocan y hacen que los visitantes cierren el servidor con solicitudes AJAX. Cuando esto sucede, quiero poder limitar las solicitudes de API a quizás 50 solicitudes por minuto , o algo por el estilo.
Nota: (en particular, recursos intensivos de base de datos, por lo que tal vez a nivel de ruta, en lugar de en todo el servidor (por ejemplo, acelerador "/ json_api /", pero no "/ static /").
fuente
zone=limit_req_zone
lugar?$http_authorization
variable para definir una nueva zona donde la clave es dicho encabezado en lugar de la dirección IP, es decirlimit_req_zone $http_authorization zone = per_user : 10m rate = 5r/s
, y luego usar laper_user
zona en las secciones de ubicación donde desea hacer la limitación de velocidad por usuario. Sin probar, solo acabo de leer la documentación y la lista de variables nginx ... ¡avíseme si intenta esto!