发布于2026-07-29 阅读(0)
扫一扫,手机访问
服务器被恶意爬虫或高频请求搞到卡顿甚至宕机,这事儿不少运维都遇到过。其实解决方案很简单——Nginx自带一个叫ngx_http_limit_req_module的模块,专门用来限制客户端请求速率,相当于给服务器加了个“流量阀门”。下面直接上实战配置。
先确认Nginx装好了:
如果还没装,用这两条命令搞定:
sudo apt update
sudo apt install nginx找到配置文件下手:
主配置文件一般在/etc/nginx/nginx.conf,不过更常见的做法是编辑虚拟主机配置,比如/etc/nginx/sites-a vailable/default:
sudo nano /etc/nginx/sites-a vailable/default写入限频配置:
在server块或location块里加上下面这段,注意要放在http块内(如果写在单独文件,记得包含进来):
http {
# 其他配置...
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
listen 80;
server_name example.com;
location / {
limit_req zone=mylimit burst=5 nodelay;
# 其他location配置...
}
}
}
这里解释一下每行在干什么:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; —— 用客户端IP($binary_remote_addr)作为标识,定义了一个叫mylimit的共享内存区域,大小10MB,速率限制为每秒1个请求。limit_req zone=mylimit burst=5 nodelay; —— 引用上面定义的区域,允许瞬时突发5个请求(burst=5),并且这些突发请求不延迟处理(nodelay),直接放行,但超过这个额度就会返回503。测试配置并生效:
sudo nginx -t
sudo systemctl reload nginx
如果测试通过,配置就生效了。现在你可以根据实际压力调整rate和burst:比如想让每分钟最多60个请求,就把rate改成60r/m。
ngx_http_auth_request_module结合外部认证服务来实现。limit_req_log_level指令。这套配置上手快、性能开销小,是保护Nginx服务器最基础也最有效的手段之一。根据业务场景灵活调整参数,就能在防攻击和用户体验之间找到平衡点。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8