当前位置: 首页 > 网络应用技术

如何将IP流向服务器

时间:2023-03-05 21:06:37 网络应用技术

  几天前,该公司的统计数据存在问题:大约是我们自己的统计模块的数据,第三方的数据具有很大的偏差 - 公司的统计水平是异常的。量。如果不允许使用服务器的性能数据,则可以,但是如果刷牙的数量太大,则可以击败服务器。这是一个典型的DDOS。因此,我们安排了此问题。

  我选择限制单个IP,即标题,并且扩展是通过Nginx服务器本身的模块(NGX_HTTP_LIMIT_REQ_REQ_REQ_REQ_REQ_REQ_REQ_REQ_HTTP_HTTP_LIMIT_CONN_MODULE)来限制单个IP的流程以直接过滤Nginx层直接过滤Nginx层直接过滤Nginx层效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应效应。掉落。

  NGX_HTTP_LIMIT_REQ_MODULE模块此模块是该模块下的功能,可以限制每秒单个IP访问的速率。主要语法是:

  在这句话中,我们通常选择在nginx.conf中定义http。定义的参数将获取单个项目的服务器来使用它。例如,我们将定义以下内容:

  我们翻译这句话:定义一个称为Mylimit的共享内存区域。该内存区域约为10m,可以存储约16W的IP。此规则IP访问率不能超过每秒2次。

  因此,我们定义此共享内存区域以及如何使用它。这就是我上面说的:“使用单个项目的服务器”。第二句话的语法如下:

  定义共享内存区域后,我们可以在项目服务器中实现此规则:

  设置完成后,我们重新启动NGINX服务器以执行最新规则:每个IP用户每秒最多访问2+7个请求,以请求

  IP速度限制溢出是系统默认值为403错误。如果我们自己设置了不同的状态代码,我们可以使用limits_req_status xxx,例如limits_req_status 504(在单个项目的服务器下),那么溢出后返回的状态代码为504。

  在这里,我借了一个博客作者的snap -up项目案例

  在正常情况下,如果设置了当前限制,则返回为503状态代码,当您将JSON数据返回移动终端时,尚未识别。将状态代码设置为200

  案例参考:https://gist.github.com/simlegate/75b18359316cc333d8e20

  NGX_HTTP_LIMIT_CONN_MODULE模块此模块此功能是限制单个IP并发连接的数量。主要语法是: