博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 限流常用模块:限制并发和IP访问频率
阅读量:4068 次
发布时间:2019-05-25

本文共 954 字,大约阅读时间需要 3 分钟。

Nginx 是我们常用的负载均衡和反向代理服务器,并发性能非常优秀。但是在并发量极大的情况下,必要限流措施还是需要的,Nginx 的有对应的模块插件可通过简单配置来完成这个功能。

Nginx 限流常用模块:限制并发和IP访问频率

 

限制并发

限制ip并发数,也是说限制同一个ip同时连接服务器的数量。

1、添加limit_conn_zone

这个变量只能在http使用。

http{ ... #定义一个名为one的limit_zone,大小10M内存来存储session, #以$binary_remote_addr 为key #nginx 1.18以后用limit_conn_zone替换了limit_conn #且只能放在http作用域 limit_conn_zone $binary_remote_addr zone=one:10m;

2、添加limit_conn

这个变量可以在http, server, location使用。只限制一个站点,所以添加到server里面。

server{ ... location { ... limit_conn one 20;		 #连接数限制 #带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k limit_rate 500k;		  ... } ... }

3、重启Nginx。

Nginx 限流常用模块:限制并发和IP访问频率

 

限制IP访问频率

限制同一个ip在一段时间里连接服务器的次数,可以一定程度上防止类似CC这种快速频率请求的攻击。

1、添加limit_req_zone

这个变量只能在http使用

http{ ... #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key,限制平均每秒的请求为5个, #1M能存储16000个状态,rete的值必须为整数, #如果限制两秒钟一个请求,可以设置成30r/m limit_req_zone $binary_remote_addr zone=allips:10m rate=5r/s; ...

2、添加limit_req

这个变量可以在http, server, location使用。只限制一个站点,所以添加到server里面。

3、重启Nginx。

上面两种配置,注意看注释,比较实用。

转载地址:http://vmoji.baihongyu.com/

你可能感兴趣的文章
iSecret 1.1 正在审核中
查看>>
IOS开发的开源库
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>