请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

Jeson 2018-04-01 19:57:25

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

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

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 《深入理解Nginx》书中说默认安装的是without-http_limit_zone_module 和without-http_limit_req_module 即这http_limit_zone_module和http_limit_req_module 这两个模块是没有安装的  在yum 方式安装的Nginx中是没有这两个模块  nginx -V 也的确看不到这两个模块啊
    回复 有任何疑惑可以回复我~ 2018-06-11 16:33:22
  • Jeson 回复 青梅煮马 #2
    http_limit*这两个模块是模块在安装Nginx上就安装的,不需要在./configure的时候额外去编译。
    回复 有任何疑惑可以回复我~ 2018-06-11 16:38:46
  • 青梅煮马 回复 Jeson #3
    我怎么知道哪些模块Nginx已经有了  不需要./configure的时候额外编译,哪些模块需要我额外编译
    回复 有任何疑惑可以回复我~ 2018-06-11 16:43:02
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号