centos

centos nginx如何限制访问速度

小樊
35
2025-06-22 11:09:55
栏目: 智能运维

在CentOS上使用Nginx限制访问速度,可以通过配置Nginx的ngx_http_limit_req_module模块来实现。这个模块允许你限制请求的速率,从而防止恶意用户或爬虫对服务器造成过大压力。

以下是配置步骤:

  1. 安装Nginx(如果尚未安装):

    sudo yum install epel-release
    sudo yum install nginx
    
  2. 启动Nginx

    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  3. 编辑Nginx配置文件: 打开Nginx的主配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

    sudo vi /etc/nginx/nginx.conf
    
  4. 添加限速配置: 在http块或server块中添加限速配置。以下是一个示例配置:

    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;
                # 其他配置...
            }
        }
    }
    

    解释:

    • limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

      • $binary_remote_addr:使用客户端的IP地址作为键。
      • zone=mylimit:10m:定义一个名为mylimit的区域,大小为10MB。
      • rate=1r/s:限制速率为每秒1个请求。
    • limit_req zone=mylimit burst=5 nodelay;

      • zone=mylimit:使用之前定义的区域。
      • burst=5:允许突发请求达到5个。
      • nodelay:不延迟处理突发请求。
  5. 保存并退出编辑器: 按Esc键,然后输入:wq保存并退出。

  6. 测试Nginx配置

    sudo nginx -t
    
  7. 重新加载Nginx

    sudo systemctl reload nginx
    

现在,Nginx将会根据配置限制访问速度。你可以根据需要调整rateburst参数来适应不同的场景。

0
看了该问题的人还看了