ubuntu

Ubuntu Nginx如何限制访问速度

小樊
44
2025-08-28 07:51:33
栏目: 智能运维

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

以下是具体步骤:

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

    sudo apt update
    sudo apt install nginx
    
  2. 启用ngx_http_limit_req_module模块: 默认情况下,这个模块通常是启用的。你可以通过以下命令检查:

    nginx -V 2>&1 | grep --color=auto limit_req
    

    如果输出中包含--with-http_limit_req_module,则表示模块已启用。

  3. 配置Nginx: 编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default

    打开配置文件:

    sudo nano /etc/nginx/sites-available/default
    

    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;:定义了一个名为mylimit的区域,限制每个IP地址每秒只能发送1个请求。zone=mylimit:10m表示为这个区域分配了10MB的内存。
    • limit_req zone=mylimit burst=5 nodelay;:在location块中使用这个区域来限制请求。burst=5表示允许突发请求达到5个,nodelay表示不对突发请求进行延迟处理。
  4. 测试配置并重启Nginx: 在保存配置文件后,测试Nginx配置是否正确:

    sudo nginx -t
    

    如果配置正确,重启Nginx以应用更改:

    sudo systemctl restart nginx
    

通过以上步骤,你就可以在Ubuntu上使用Nginx限制访问速度了。根据需要调整rateburst参数,以适应你的具体需求。

0
看了该问题的人还看了