采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师 用 limit_conn_zone 设置链接数之后,err.log里没有显示关于limit_conn_zone的报错
你好,首先检查limit_conn_zone的配置,看看是否正确或者生效。
如果配置正确无误、并生效的情况下,你需要注意的是,连接限制是Nginx针对客户端单次连接延时,就一次连接而言,如果接口响应很快,是非常短暂,都可以用ms来耗时来完成。
所以你的配置虽然生效了,但由于Nginx测试的接口响应极快,而客户端ab工具虽然看似并发20,但微观上并不是是同一个时间就能开启到20个连接,会有很短的间隔差,在这个间隔差中即使设置并发限制,20个请求也能在后端进行消化。
所以了解原理后,我建议你:
1、将Nginx端提高接口响应的延时,可以结合Nginx的proxy_pass,将请求调转到后端的一个动态接口,这样单次的响应延时就高了,前端测试效果就会很明显。
2、也可以选择将客户端到Nginx的服务端网络延时增加,比如将ab的客户端选择到国外一个节点来发起,这样请求就需要更长的时间话费在网络上,也能起到更明显的效果。
《深入理解Nginx》书中说默认安装的是without-http_limit_zone_module 和without-http_limit_req_module 即这http_limit_zone_module和http_limit_req_module 这两个模块是没有安装的 在yum 方式安装的Nginx中是没有这两个模块 nginx -V 也的确看不到这两个模块啊
http_limit*这两个模块是模块在安装Nginx上就安装的,不需要在./configure的时候额外去编译。
我怎么知道哪些模块Nginx已经有了 不需要./configure的时候额外编译,哪些模块需要我额外编译
登录后可查看更多问答,登录/注册
中间件、负载均衡、应用层安全防护、动静分离、Nginx+LUA开发等
3.6k 10
2.6k 12
1.3k 12
2.2k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号