centos

CentOS Apache2如何限制访问速度

小樊
47
2025-04-04 15:43:05
栏目: 智能运维

在 CentOS 上使用 Apache 服务器时,可以通过配置模块来限制访问速度。Apache 提供了几个模块来实现这一功能,其中最常用的是 mod_ratelimitmod_evasive。以下是如何使用这些模块来限制访问速度的步骤:

使用 mod_ratelimit

  1. 安装 mod_ratelimit 模块

    sudo yum install mod_ratelimit
    
  2. 启用 mod_ratelimit 模块

    sudo systemctl restart httpd
    
  3. 配置 mod_ratelimit: 编辑 Apache 配置文件(例如 /etc/httpd/conf/httpd.conf/etc/httpd/conf.d/ratelimit.conf),添加以下内容:

    <IfModule mod_ratelimit.c>
        # 限制每个 IP 地址每秒的请求数
        SetEnv rate-limit 50
        # 限制每个 IP 地址每分钟的请求数
        SetEnv rate-limit-burst 100
        # 限制每个 IP 地址每小时的请求数
        SetEnv rate-limit-hour 5000
        # 限制每个 IP 地址每天的请求数
        SetEnv rate-limit-day 10000
    
        # 应用到特定的目录或文件
        <Directory "/var/www/html">
            SetOutputFilter RATE_LIMIT
            SetEnv rate-limit 50
            SetEnv rate-limit-burst 100
        </Directory>
    </IfModule>
    
  4. 重启 Apache 服务

    sudo systemctl restart httpd
    

使用 mod_evasive

  1. 安装 mod_evasive 模块

    sudo yum install mod_evasive20
    
  2. 启用 mod_evasive 模块: 编辑 Apache 配置文件(例如 /etc/httpd/conf/httpd.conf/etc/httpd/conf.d/evasive.conf),添加以下内容:

    LoadModule evasive20_module modules/mod_evasive20.so
    
    <IfModule mod_evasive20.c>
        DOSHashTableSize    3097
        DOSPageCount        2
        DOSSiteCount        50
        DOSPageInterval     1
        DOSSiteInterval     1
        DOSBlockingPeriod   10
    </IfModule>
    
  3. 重启 Apache 服务

    sudo systemctl restart httpd
    

注意事项

通过以上步骤,您可以在 CentOS 上使用 Apache 服务器限制访问速度。选择适合您需求的模块并进行相应的配置即可。

0
看了该问题的人还看了