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

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

限制并发

限制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。

限制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。

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

相关文章

Nginx中的ip_hash

ip_hash 是 Nginx 负载均衡中用于 会话保持(Session Persistence) 的算法,其核心原理是通过客户端 IP 地址的哈希值,将同一客户端的请求固定转发到同一台后端服务器。1...

影视网站建站租用多IP站群服务器

如果你正在规划影视网站集群,租用多IP站群服务器确实是个高效的选择。这类配置既要满足影视内容的高性能处理需求,又要兼顾SEO隔离和访问稳定性,我结合当前主流方案和行业实践,帮你整理出以下关键要点,供你...

多IP服务器建站指南

懂知足 于是快乐很简单 利用多IP服务器建站是一种提升性能、安全性或实现特定功能的常见策略。以下是关键点、实施步骤和注意事项:核心应用场景多网站/服务隔离每个网站/服务绑定独立IP,避免共享IP被封导...

Nginx通过ip进行限流,并增加白名单

通过IP进行限制limit_req_zone $binary_remote_addr zone=iplimit:20m rate=10r/s ;remote_addr,表示通过IP地址进行限流ipli...

Nginx伪静态限制指定IP的地区访问和获取指定地区IP地址段

1、获取指定地区IP地址段打开网址: https://www.ip2location.com/free/visitor-blocker比如我想设置日本地区的ipv4段的客户端禁止访问最后点击下载,下载...