手游,服务端,手游资源,手游教程,老炮网络

 找回密码
 立即注册
查看: 1540|回复: 2

[文字教程] nginx配置限制同一个ip的访问频率防止被发包刷注册

[复制链接]

132

主题

170

帖子

4万

积分

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

炮弹
44770

管理员

发表于 2021-2-4 22:11:03 | 显示全部楼层 |阅读模式
网络游戏技术交流

自行研究

nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数.

ngx_http_limit_conn_module:该模块用于限制每个定义的密钥的连接数,特别是单个IP​​地址的连接数.使用limit_conn_zone和limit_conn指令.

ngx_http_limit_req_module:用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率。使用“泄漏桶”方法进行限制.指令:limit_req_zone和limit_req.

1、在nginx.conf里的http{}里加上如下代码:

  1. limit_conn_zone $binary_remote_addr zone=perip:10m;

  2. limit_conn_zone $server_name zone=perserver:10m;
复制代码

2、在需要限制并发数和下载带宽的网站配置server{}里加上如下代码:

  1. limit_conn perip 2;

  2. limit_conn perserver 20;

  3. limit_rate 100k;
复制代码

补充说明下参数:

  • $binary_remote_addr是限制同一客户端ip地址;
  • $server_name是限制同一server最大并发数;
  • limit_conn为限制并发连接数;
  • limit_rate为限制下载速度;
  1. http {
  2.   limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
  3.   limit_req_zone $server_name zone=perserver:10m rate=10r/s;
  4.   ...
  5.   server {
  6.     ...
  7.       limit_req zone=perip burst=5 nodelay;  #漏桶数为5个.也就是队列数.nodelay:不启用延迟.
  8.       limit_req zone=perserver burst=10;    #限制nginx的处理速率为每秒10个
  9.     }
复制代码
  1. http {
  2.   limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
  3.   ...
  4.   #定义一个名为one的limit_req_zone用来存储session,大小是10M内存,  
  5.   #以$binary_remote_addr 为key,限制平均每秒的请求为1个,
  6.   #1M能存储16000个状态,rete的值必须为整数,
  7.   
  8.   server {
  9.     ...
  10.     location /search/ {
  11.       limit_req zone=one burst=5;
  12.         
  13.         #限制每ip每秒不超过1个请求,漏桶数burst为5,也就是队列.
  14.         #nodelay,如果不设置该选项,严格使用平均速率限制请求数,超过的请求被延时处理.
  15.         #举个栗子:
  16.         #设置rate=20r/s每秒请求数为20个,漏桶数burst为5个,
  17.         #brust的意思就是,如果第1秒、2,3,4秒请求为19个,第5秒的请求为25个是被允许的,可以理解为20+5
  18.         #但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误.
  19.         #如果区域存储空间不足,服务器将返回503(服务临时不可用)错误 
  20.         #速率在每秒请求中指定(r/s)。如果需要每秒少于一个请求的速率,则以每分钟的请求(r/m)指定。 
  21.         
  22.     }
复制代码


转自链接:https://blog.csdn.net/ffzhihua/article/details/90202924


1

主题

26

帖子

123

积分

Rank: 1

炮弹
97

新手上路

发表于 2021-7-27 08:14:53 来自手机 | 显示全部楼层
网络游戏技术交流
膜拜,这个好东西

0

主题

15

帖子

25

积分

Rank: 1

炮弹
10

新手上路

发表于 2021-9-12 16:49:08 | 显示全部楼层
网络游戏技术交流
楼主加油,我们都看好你哦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

网络游戏技术交流

更多资源请关注公众号

QQ|Archiver|手机版|小黑屋|老炮网 ( 鲁ICP备19024250号-1 )|

GMT+8, 2024-5-4 19:00 , Processed in 0.075919 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表