ubuntu

Ubuntu如何限制Nginx访问速度

小樊
42
2025-06-19 22:58:58
栏目: 智能运维

在Ubuntu系统中,你可以使用nginxngx_http_limit_req_module模块来限制访问速度。以下是具体步骤:

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

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 打开Nginx的主配置文件/etc/nginx/nginx.conf或特定站点的配置文件(通常位于/etc/nginx/sites-available/目录下)。

    sudo nano /etc/nginx/nginx.conf
    

    或者

    sudo nano /etc/nginx/sites-available/your-site.conf
    
  3. 添加限速配置: 在httpserverlocation块中添加以下配置:

    http {
        # 其他配置...
    
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    
        server {
            # 其他配置...
    
            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:不延迟处理突发请求。
  4. 保存并退出编辑器: 按Ctrl+X,然后按Y确认保存,最后按Enter退出。

  5. 测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误。

    sudo nginx -t
    
  6. 重新加载Nginx: 如果配置文件没有问题,重新加载Nginx以应用更改。

    sudo systemctl reload nginx
    

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

0
看了该问题的人还看了