在Debian上的Nginx中,您可以使用ngx_http_limit_req_module模块来限制访问频率。以下是如何设置和使用此模块的步骤:
确保已安装Nginx: 如果尚未安装,请运行以下命令:
sudo apt-get update sudo apt-get install nginx 创建一个共享内存区域以存储请求计数: 在nginx.conf文件中添加以下行:
http { ... limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; ... } 这里,我们使用客户端的IP地址作为键来限制请求速率。zone=mylimit:10m定义了一个名为mylimit的区域,大小为10MB。rate=1r/s表示每秒允许的最大请求数为1。
在需要限制访问频率的server或location块中使用limit_req指令:
server { ... location / { ... limit_req zone=mylimit burst=5 nodelay; ... } } 这里,burst=5表示允许短时间内的突发请求达到5个,超过这个数量的请求将被延迟处理。nodelay表示不对这些请求进行延迟处理。
重新加载Nginx配置以应用更改:
sudo nginx -t sudo systemctl reload nginx 现在,Nginx将根据您设置的限制来限制访问频率。如果请求超过了允许的速率,Nginx将返回HTTP 503(Service Temporarily Unavailable)错误。