limit_zone
是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个10m的容器,按照32bytes/session,可以处理320000个session。
limit_conn limit 2
限制每个IP只能并发两个连接。
limit_rate 50k;
对每个连接限速50k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_conn ×limit_rate,也就是 2×50k=100k。
在配置文件nginx.conf的http{}添加:
limit_zone one $binary_remote_addr 10m;
在location url重写配置里添加:
limit_conn one 5;
limit_rate 50k;
limit_rate 50k;
如下:站长教学网 eduyo.com
http{
.............
limit_zone one $binary_remote_addr 10m; #添加这一行
..............
server{
.................
location {
.........
limit_conn one 5; #连接数限制(线程)
limit_rate 50k; #带宽限制
........
}
.................
}
.............
}
.............
limit_zone one $binary_remote_addr 10m; #添加这一行
..............
server{
.................
location {
.........
limit_conn one 5; #连接数限制(线程)
limit_rate 50k; #带宽限制
........
}
.................
}
.............
}
测试:
限制前:
限制后: