温馨提示×

Apache2配置中如何限制访问频率

小樊
48
2025-11-15 04:25:17
栏目: 编程语言

在Apache2中,您可以使用mod_evasive模块来限制访问频率。以下是如何安装和配置mod_evasive的步骤:

  1. 安装mod_evasive模块:

对于Debian/Ubuntu系统,请运行以下命令:

sudo apt-get update
sudo apt-get install libapache2-mod-evasive

对于CentOS/RHEL系统,请运行以下命令:

sudo yum install mod_evasive
  1. 启用mod_evasive模块:

对于Debian/Ubuntu系统,请运行以下命令:

sudo a2enmod evasive

对于CentOS/RHEL系统,请运行以下命令:

sudo systemctl enable mod_evasive
  1. 配置mod_evasive

编辑Apache配置文件(例如/etc/apache2/apache2.conf/etc/httpd/conf/httpd.conf),并添加以下内容:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

这里的配置表示:

  • DOSHashTableSize:哈希表的大小,用于存储IP地址和访问计数。建议使用质数,例如3097。
  • DOSPageCount:单个页面在一定时间内的最大请求次数。在这个例子中,我们设置为2次。
  • DOSSiteCount:单个网站在一定时间内的最大请求次数。在这个例子中,我们设置为50次。
  • DOSPageInterval:计算页面请求的时间间隔(以秒为单位)。在这个例子中,我们设置为1秒。
  • DOSSiteInterval:计算网站请求的时间间隔(以秒为单位)。在这个例子中,我们设置为1秒。
  • DOSBlockingPeriod:当达到限制时,阻止IP地址的时间(以秒为单位)。在这个例子中,我们设置为10秒。

您可以根据需要调整这些值。

  1. 重启Apache服务器:

对于Debian/Ubuntu系统,请运行以下命令:

sudo systemctl restart apache2

对于CentOS/RHEL系统,请运行以下命令:

sudo systemctl restart httpd

现在,mod_evasive模块已经配置完成并生效。它将限制访问频率,防止恶意用户对您的网站发起大量请求。

0