nginx防御解释

本文详细介绍了如何在Nginx中使用limit_req_zone和limit_conn_zone进行请求速率限制、并发连接数管理和服务器级别的资源管理,包括限制每个IP地址、服务器和源站的并发连接数以及下载速度。
摘要由CSDN通过智能技术生成


http{

    #limit_req_zone 用来限制单位时间内的请求数目,以及速度限制。
    #limit_conn_zone 限制并发连接数以及下载带宽。

    #每个请求分配10m内存
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    
    #限制同一server最大并发数
    limit_conn_zone $server_name zone=perserver:10m;
    
    #每个请求分配10m内存,限制频率为每秒10个请求
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    
    server{
    
        #当超过限制规则后,返回的响应状态码,默认是503。
        limit_conn_status 503;
        
        #当达到最大限制规则的连接数后,记录日志的等级。
        limit_conn_log_level notice;
    
        #这个配置将限制所有访问ip的请求速率为10个请求/秒
        #允许超过频率限制的请求数不多于5个
        #如果客户端超过这个速率,Nginx将返回503错误码,并且客户端将无法访问您的Web应用程序
        #nodelay 超过的请求不被延迟处理,设置后15个请求在1秒内处理,不设置这无限排队
        location / {
            limit_req zone=one burst=5 nodelay;
        }
    
        #这个配置将只允许来自example.com站点和其子域名的请求。
        #如果一个请求没有引用头或者引用头不是一个有效的来源,Nginx将返回403错误码。
        #并且客户端将无法访问您的Web应用程序。
        location / {
            valid_referers none blocked *.example.com;
            if ($invalid_referer) {
                return 403;
            }
        }
        
        #这个配置将限制每个IP地址的最大并发连接数为10个。
        #如果一个IP地址超过这个限制,Nginx将开始拒绝来自该IP地址的新连接,直到其并发连接数降低到10个以下。
        location / {
            limit_conn perip 10;
        }
        

        #限制同一server(虚拟主机)最大并发数。
        location / {
            limit_conn perserver 100;
        }
    
        #限制下载速度
        location / {
            limit_rate 100k;
        }

    }
    
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值