首页 » 网站推广 » ip1php技巧_网站nginx设备限制单个IP访问频率预防DDOS恶意进击

ip1php技巧_网站nginx设备限制单个IP访问频率预防DDOS恶意进击

访客 2024-12-05 0

扫一扫用手机浏览

文章目录 [+]

nginx两个限流模块:

连接频率限定,ngx_http_limit_conn_module:官方文档:https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

ip1php技巧_网站nginx设备限制单个IP访问频率预防DDOS恶意进击

要求频率限定,ngx_http_limit_req_module:官方文档:https://nginx.org/en/docs/http/ngx_http_limit_req_module.html

ip1php技巧_网站nginx设备限制单个IP访问频率预防DDOS恶意进击
(图片来自网络侵删)
二、两者模块差异

首先理解要乞降连接,HTTP要求建立在一次TCP连接根本上, 一次TCP连接至少产生一次HTTP要求(1次或多次)

网上理论很多,根据名字可知:

connection是连接,即常说的tcp连接,通过三次握手而建立的一个完全状态机。
建立一个连接,必须要三次握手。
request是指要求,即http要求,tcp连接是有状态的,而构建在tcp之上的http却是无状态的协议。

当然还是看不懂的话,普通点讲(相对付韶光比较):

limit_req_zone,在 有限的韶光 内限定,单个IP每秒或者每分钟只能发出多少要求。
多的一概不理会。
limit_conn_zone, 不限韶光 ,只许可单个IP这么多个连接,或者称为并发。
如:设置10个连接,第11个连接时,必须等前面有一个已经完成或者开释后,这个连接才能许可。

比如秒杀,抢购,连接频率限定和要求频率限定该当合营利用 , 利用连接频率限定同一IP同时只能有3个连接, 再利用要求频率限定对付同一ip的要求,限定均匀速率为5个要求/秒 , 这样比单独只利用一种限定要好很多。

比如只利用要求频率限定 , 可以精确地限定同一ip1秒只能发起5次的http要求 , 如果同一ip1秒内发起了100000次要求 , 虽然限定了只有5次成功相应 , 但是其他的99995次的要求TCP握手建立http连接是不是会花费做事器资源? 以是还须要合营利用。

三、配置

1、limit_req_zone,示例:

http{ limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s; #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key,限定均匀每秒的要求为20个, #1M能存储16000个状态,rete的值必须为整数, #如果限定两秒钟一个要求,可以设置成30r/m 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; } }}

2、limit_conn_zone,示例:

http { limit_conn_zone $binary_remote_addr zone=addr:10m; #定义一个名为addr的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key #nginx 1.18往后用limit_conn_zone更换了limit_conn, #且只能放在http{}代码段. server { location / { limit_conn addr 10;   #连接数限定,并发数 #设置给定键值的共享内存区域和许可的最大连接数。
超出此限定时,做事器将返回503(做事临时不可用)缺点.       #如果区域存储空间不敷,做事器将返回503(做事临时不可用)缺点 } }}

3、搭配一起利用

http { ... ... limit_req_zone $binary_remote_addr zone=req_zone:1m rate=20r/s; #限定连接要求设置,访问内存10M,所有访问ip 限定每秒10个要求 limit_conn_zone $binary_remote_addr zone=addr:10m; #限定连接IP设置 ... ... server { listen 80; server_name ywbj.cc; location / { ... limit_req zone=req_zone burst=5 nodelay; limit_conn addr 5; ... } }}四、压力测试工具

1、ab命令

ab是apache自带的压力测试工具。
一样平常不用额外安装,ab非常实用,它不仅可以对apache做事器进行网站访问压力测试,也可以对或其它类型的做事器进行压力测试。
比如nginx、tomcat、IIS等。

测试命令

ab -c 10 -n 100 https://ywbj.cc/#-c10表示并发用户数为10#-n100表示要求总数为100

2、wrk命令

需自己安装,地址:https://github.com/wg/wrk

安装

git clone git@github.com:wg/wrk.git#或者自己下载解压cd wrk#进入目录make#make编译后在目录可利用wrk命令,先安装make,unzip这些工具。

测试命令:

wrk -t12 -c100 -d30s https://ywbj.cc#12线程,100连接,30s韶光

还有其他压测工具,自行研究

标签:

相关文章

介绍直播新纪元,轻松进入直播的五大步骤

随着互联网技术的飞速发展,直播行业在我国逐渐崛起,越来越多的人选择通过直播这一新兴媒介展示自己、分享生活、传递价值。对于许多新手来...

网站推广 2025-01-03 阅读1 评论0

介绍相机美颜原理,科技与美学的完美结合

随着科技的发展,智能手机的摄像头功能日益强大,美颜相机成为了许多人拍照的首选。美颜相机不仅满足了人们对于美的追求,更在视觉上给人带...

网站推广 2025-01-03 阅读1 评论0

介绍磁铁的制造,科学与艺术的完美结合

磁铁,一种神秘的物质,自古以来就吸引了无数人的目光。它不仅具有独特的磁性,还能在工业、医疗、科研等领域发挥重要作用。磁铁是如何制造...

网站推广 2025-01-03 阅读1 评论0

介绍电瓶激活方法,让电池焕发新生

随着科技的不断发展,电动汽车逐渐成为人们出行的首选。而电瓶作为电动汽车的核心部件,其性能直接影响着车辆的续航里程和行驶体验。新购买...

网站推广 2025-01-03 阅读1 评论0