当前位置 主页 > 服务器问题 > nginx问题汇总 >

Nginx服务器限制IP访问的各种情况全解析

栏目:nginx问题汇总 时间:2018-11-21 16:26

这篇文章主要介绍了Nginx服务器限制IP访问的各种情况全解析,包括限制同一IP在一段时间内的访问次数和全局限IP访问以及限制IP访问指定目录等情况,需要的朋友可以参考下

限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃。

   cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数来防cc攻击。

HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。

   HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令

这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制

HttpLimitReqModul 限制某一段时间内同一ip访问数实例

http{  ...  #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,  #以$binary_remote_addr 为key,限制平均每秒的请求为20个,  #1M能存储16000个状态,rete的值必须为整数,  #如果限制两秒钟一个请求,可以设置成30r/m  limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;  ...  server{    ...    location {      ...      #限制每ip每秒不超过20个请求,漏桶数burst为5      #brust的意思就是,如果第1秒、2,3,4秒请求为19个,      #第5秒的请求为25个是被允许的。      #但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。      #nodelay,如果不设置该选项,严格使用平均速率限制请求数,      #第1秒25个请求时,5个请求放到第2秒执行,      #设置nodelay,25个请求将在第1秒执行。      limit_req zone=allips burst=5 nodelay;      ...    }    ...  }  ...}

HttpLimitZoneModule 限制并发连接数实例

limit_zone只能定义在http作用域,limit_conn可以定义在http server location作用域

http{  ...  #定义一个名为one的limit_zone,大小10M内存来存储session,  #以$binary_remote_addr 为key  #nginx 1.18以后用limit_conn_zone替换了limit_conn  #且只能放在http作用域  limit_conn_zone  one $binary_remote_addr 10m;  ...  server{    ...    location {      ...      limit_conn one 20;     #连接数限制      #带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k      limit_rate 500k;           ...    }    ...  }  ...}


服务器全局限IP

#vi nginx.conf  allow 10.57.22.172;  deny all;


指定目录的IP访问限制

实现重点

    正则表达式中()和|的使用,()代表一个原则,|代表或
    nginx的location匹配规则中,有一条按照文件顺序进行正则匹配(ps:可以把需要匹配的目录放置在server模块开始的位置)
    allow和deny的使用


示例
目录结构

根目录/srv/test1 / --  hello.phptest2/  --  hello.phptest3/  --  hello.phptest4/  --  {hello.php,1.php,2.php}



缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全