nginx 配置

http {
#geot和map两段用于处理限速白名单,map段映射名单到limit,处于geo内的IP将被映射为空值,否则为其IP地址。 #limit_conn_zone和limit_req_zone指令对于键为空值的将会被忽略,从而实现对于列出来的IP不做限制 geowhiteiplist {
default 1;
127.0.0.1 0;
121.199.16.249 0;
}
map whiteiplistlimit {
1 $binary_remote_addr;
0 "";
}

 #limit_conn_zone定义每个IP的并发连接数量
 #设置一个缓存区保存不同key的状态,大小10m。使用$limit来作为key,以此限制每个源IP的链接数
 limit_conn_zone $limit  zone=perip:10m;
 
 
 #limit_req_zone定义每个IP的每秒请求数量
 #设置一个缓存区reqps保存不同key的状态,大小10m。这里的状态是指当前的过量请求数。
 #$limit为空值则不限速,否则对应的IP进行限制每秒5个连接请求。
 limit_req_zone  $limit  zone=reqps:10m rate=5r/s;

  

 server {
    listen     80;
    server_name   www.domain.com;

    #只对PHP页面的请求进行限速
    location ~ [^/]\.php(/|$)
    {
        #对应limit_conn_zone块
        #限制每IP的PHP页面请求并发数量为5个
        limit_conn perip 5; 
       
        #对应limit_req_zone块
        #限制每IP的每秒的PHP页面请求次数为上面定义的rate的值:每秒5个请求,不延迟      
        limit_req zone=reqps nodelay;
    }
 }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容