发布于2026-07-08 阅读(0)
扫一扫,手机访问
在Apache2里限制访问频率,其实是个挺常见的需求。尤其是当你发现网站流量突然异常,或者后台日志里频繁出现某个IP的疯狂请求时,你肯定想过:能不能直接给这些“捣乱分子”设个门槛?

答案是肯定的。Apache2里有一个很成熟的防攻击模块——mod_evasive,专门用来干这个。它的核心逻辑很简单:记录每个IP的访问行为,一旦触发了你设定的阈值,就自动拉黑一段时间。下面我们就直接上手,看看怎么装、怎么配、怎么用。
不同发行版的安装方式大同小异。以Debian/Ubuntu为例,一行命令搞定:
sudo apt-get update
sudo apt-get install libapache2-mod-evasive如果是CentOS/RHEL系列,用yum或dnf装对应的包就行。装完之后,别忘了启用模块:
sudo a2enmod evasive配置文件的路径,不同系统略有差异。Debian/Ubuntu通常是在/etc/apache2/apache2.conf或/etc/apache2/mods-enabled/evasive.conf里;CentOS/RHEL则一般在/etc/httpd/conf/httpd.conf。找到配置文件后,把下面这段内容加进去:
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
这几个参数,每个都有它的用途。简单解释一下:
DOSPageInterval秒内,同一个IP可以请求同一个页面的最大次数。超过这个数,就会被暂时“请出”。DOSSiteInterval秒内,同一个IP可以请求整个站点的最大次数。这个参数主要防止单IP对整个站点的全局扫描。上面的配置,通俗点理解就是:同一个IP在1秒内请求同一个页面超过2次,或者1秒内请求整个站点超过50次,就会被拉黑10秒。当然,这些数值只是参考,实际生产环境中,你需要根据自己网站的流量特征来调整。比如,如果是高并发接口,DOSPageCount可以适当调高,但别放得太松,不然就失去防护意义了。
配置完成后,重启Apache使之生效:
sudo systemctl restart apache2到此为止,mod_evasive就已经开始工作了。它会默默地记录每个IP的访问频次,一旦触雷,立刻拦截。整个过程不需要额外的人工干预,相当于给你的网站加了一层自动防护网。
上一篇:Apache2安全配置有哪些要点
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8