1.配置 Nginx 限流模块
ngx_http_limit_req_module:这是 Nginx 内置的请求限制模块。首先,打开 Nginx 的主配置文件(通常是nginx.conf)或者对应的虚拟主机配置文件,添加如下代码示例来限制单个 IP 地址的请求频率:
http {
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
location / {
limit_req zone=mylimit;
}
}
}
这段代码定义了一个名为mylimit的限流区域,使用客户端的 IP 地址($binary_remote_addr )作为识别标识,分配了 10MB 的内存空间,允许每秒最多 10 个请求。任何超出这个频率的请求都会被延迟处理,直到满足速率限制条件。
2.按 URL 限流:除了基于 IP 限流,还能针对特定 URL 路径进行限制。例如,只对 WordPress 的登录页面(wp-login.php)进行严格限流:
http {
limit_req_zone $binary_remote_addr zone=loginlimit:10m rate=3r/s;
server {
location = /wp-login.php {
limit_req zone=loginlimit;
}
}
}
3.封禁恶意 IP
手动封禁:发现恶意 IP 后,在 Nginx 配置文件中添加如下封禁规则:
server {
location / {
deny 192.168.1.100; # 替换成实际的恶意IP
allow all;
}
}
4.结合脚本动态封禁:搭配如fail2ban这样的工具,它能实时监测 Nginx 的访问日志,一旦检测到符合设定的恶意访问模式,例如短时间内多次 404 错误,就会自动把相关 IP 添加到 Nginx 的封禁列表中,实现自动化的 IP 封禁流程。
5.启用 Nginx 缓存
配置页面缓存:利用ngx_http_proxy_module或ngx_cache_purge模块实现页面缓存。例如,设置一个简单的缓存区域:
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:100m inactive=60m;
server {
location / {
proxy_cache my_cache;
proxy_pass http://your_backend;
}
}
}
缓存机制可以让 Nginx 快速响应频繁访问的内容,减少后端 WordPress 服务器的负载,就算遭遇非正常的高频请求,也能依靠缓存维持网站运转,不至于立刻瘫痪。
6.使用 Nginx Web 应用防火墙(WAF)
ModSecurity:配合 Nginx 使用 ModSecurity ,这是一款开源的 WAF。安装并配置后,它依据一套预定义规则以及自定义规则来检测、拦截恶意请求,像是 SQL 注入、跨站脚本攻击这类非正常访问企图,都能在抵达 WordPress 站点之前被拦下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix