在Ubuntu中,使用Nginx限制访问速度可以通过配置Nginx的ngx_http_limit_req_module
模块来实现。这个模块允许你限制客户端请求的速率,从而防止恶意用户或爬虫对服务器发起大量请求。
以下是如何在Ubuntu中使用Nginx限制访问速度的步骤:
sudo apt update
sudo apt install nginx
/etc/nginx/conf.d/rate-limit.conf
:sudo nano /etc/nginx/conf.d/rate-limit.conf
http {
# 定义一个名为"limit_req_zone"的共享内存区域,用于存储客户端的请求速率信息
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
listen 80;
server_name example.com;
location / {
# 应用"limit_req"指令,使用之前定义的"mylimit"区域和默认的请求队列长度(40)
limit_req zone=mylimit burst=40 nodelay;
root /var/www/html;
index index.html index.htm;
}
}
}
在这个例子中,我们限制了每个IP地址每秒只能发送1个请求。burst
参数设置了允许的突发请求数量,默认值为40。nodelay
参数表示不对请求进行延迟处理,即立即返回允许的请求。
保存并关闭配置文件。
重新加载Nginx以应用更改:
sudo nginx -t
sudo systemctl reload nginx
现在,Nginx将限制访问速度,每个IP地址每秒只能发送1个请求。你可以根据需要调整rate
和burst
参数的值。