老师 用 limit_conn_zone 设置链接数之后,err.log里没有显示关于limit_conn_zone的报错

来源:2-27 Nginx的访问控制_介绍实现访问控制的基本方式

慕设计1405378

2018-03-29

 老师 用  limit_conn_zone 设置链接数之后,err.log里没有显示关于limit_conn_zone的报错

写回答

1回答

Jeson

2018-04-01

你好,首先检查limit_conn_zone的配置,看看是否正确或者生效。

如果配置正确无误、并生效的情况下,你需要注意的是,连接限制是Nginx针对客户端单次连接延时,就一次连接而言,如果接口响应很快,是非常短暂,都可以用ms来耗时来完成。

所以你的配置虽然生效了,但由于Nginx测试的接口响应极快,而客户端ab工具虽然看似并发20,但微观上并不是是同一个时间就能开启到20个连接,会有很短的间隔差,在这个间隔差中即使设置并发限制,20个请求也能在后端进行消化。

所以了解原理后,我建议你:

1、将Nginx端提高接口响应的延时,可以结合Nginx的proxy_pass,将请求调转到后端的一个动态接口,这样单次的响应延时就高了,前端测试效果就会很明显。

2、也可以选择将客户端到Nginx的服务端网络延时增加,比如将ab的客户端选择到国外一个节点来发起,这样请求就需要更长的时间话费在网络上,也能起到更明显的效果。

0
4
Jeson
回复
青梅煮马
问题简单,但确实不太好通过一个固定的方式看到,我感觉更多的是靠经验,或者从Nginx的编译源码来看。
2018-06-11
共4条回复

Nginx入门到实践-Nginx中间件应用+搭建Webserver架构

中间件、负载均衡、应用层安全防护、动静分离、Nginx+LUA开发等

4183 学习 · 908 问题

查看课程