线上生产环境nginx 加tomcat负载在业务高峰期出现问题?

你的nginx配置中,"proxy_connect_timeout 6000"代表nginx与后端(即upstream)建连的超时时间为6秒。即是说,当nginx尝试与tomcat建连时间超过6秒后就会放弃并报错。高峰期时,如果nginx与tomcat建连频繁超时,就会出现你描述的情况。
你所谓的"tomcat卡死",我估计应该是tomcat在应对高峰流量时展现出的请求严重积压状态,此时tomcat还在工作,只不过排队的请求太多,响应非常非常慢。
至于为啥拿掉nginx之后就"没问题"了,是因为拿掉nginx之后就是用户直接与tomcat建连,此时请求处理效率并没有提高(如果按照6秒超时来计算的话,建连失败和先前是一样多甚至更多的),只不过建连失败、请求超时等问题都不会体现在tomcat的日志中罢了。

■网友
卡的时候要看下后端情况,多看看日志,同时监视服务器资源状态。看一下卡的时候是啥资源不够用,网络,内存,I/O,处理器等等,一般都能从日志中看出来。

■网友
一般这个报错是Nginx分发请求到Tomcat时,后台报错导致的。你可以分析下后台报错的业务模块
这个问题怎么说了 你有详细的访问数量统计不?而且要监控高峰时期各个系统资源的使用率。
单tomcat能抗住,也许那天的用户的接口使用情况,刚好卡在处理能力的极限下。


服务器运维是门辛苦活 需要自己不停的折腾。
线上生产环境nginx 加tomcat负载在业务高峰期出现问题?



■网友
【线上生产环境nginx 加tomcat负载在业务高峰期出现问题?】 出现这个问题,是nginx 反向代理时间设置的不合理导致的,你那个时间设置的太长,你可以观察下,在高峰时段反响代理的TCP链接数,timeout连接数,看是不是有大量的timeout,或wait,另外可以修改系统内核参数优化nginx回收TCP连接资源


    推荐阅读