Nginx并发请求过高导致请求超时的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx并发请求过高导致请求超时的问题相关的知识,希望对你有一定的参考价值。

参考技术A

昨晚(2020-07-09)八点左右,生产运行的APP大面积上报请求超时,无法获取数据,显示网络连接错误等。经过简单测试,发现并不是如用户所说的APP完全无法与服务器通讯,偶尔请求又能正常返回。
登录后台后,直接查看系统连接数,发现并发数较高,等待处理的请求也很多,造成了网络阻塞;

分析可能是有类似爬虫的程序在对我们的系统进行扫描。由于系统并没有特别高并发的需求(小众应用),所以没有所谓的高并发架构,但应用服务端采用的是Nginx,故决定限制一下限制客户端的访问频次和访问次数。

​Nginx可以通过 ngx_http_limit_conn_module ngx_http_limit_req_module 配置来限制ip在同一时间段的访问次数:

可以根据设定的条件来限定客户端(单一ip)的 并发访问 ,使用limit_conn_zone和limit_conn指令。

可以根据设定的条件来限定客户端(单一ip)的 访问频率 ,使用limit_req_zone和limit_req指令。

以上是关于Nginx并发请求过高导致请求超时的问题的主要内容,如果未能解决你的问题,请参考以下文章

php环境下nginx超时问题解决

覆盖金字塔/ gunicorn中的请求超时

nginx中的超时设置,请求超时响应等待超时等

redis压测两小时后超时

nginx配置长连接(ajax60秒请求超时)

nginx配置长连接(ajax60秒请求超时)