nginx奇怪的超时110: Connection timed out 85

最近业务出现一个问题,业务是2台nginx代理+5台php(3台http,2台https)+redis+mysql。但是最近其中一台nginx一直报错connect()f... 最近业务出现一个问题,业务是2台nginx代理+5台php(3台http,2台https)+redis+mysql。但是最近其中一台nginx一直报错connect() failed (110: Connection timed out) while connecting to upstream。

1.另外一台nginx正常

2.并不是高峰期才出现,有时候一分钟,有时候三分钟,午夜没有用户量的时候也有

3.报错显示nginx对每台php都出现超时,一下这台一下那台

4.max_fails=3 fail_timeout=10s而且php的压力并不大,查了php子进程数也不多,但是也会报错,cpu、内存正常

5.php的超时时间全部设置了900或者3000request_terminate_timeout,php.ini里面也有设置而且如果设计到这边,一般回事while reading to upstream。

6.它的是直接代理到php所有设置,也设置了proxy,也不行

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 128m;

client_body_buffer_size 128k;

fastcgi_connect_timeout 600;

fastcgi_send_timeout 600;

fastcgi_read_timeout 600;

fastcgi_buffer_size 128k;

fastcgi_buffers 16 64k;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 512k;全部设置完成,而且加大也没有用

7.linux内核参数以及limit文件全部设置完成,端口数也绝对够用,系统是centos6.8,php_error并没有什么异常报错

8.php的处理问题个数设置的是5000.调查日志发现有时候报错的时候那台php并没有进程结束

9.time_wait很少,连接数也不是很多
展开
 我来答
nxk88998
2018-05-09 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:224
采纳率:85%
帮助的人:52.2万
展开全部
很明显是架构问题,nginx本身可能也存在原因,而不是后端,不然另一台nginx就也会爆超时,那么你的2个nginx是做反向代理到后方对吧,你的业务会话超时时间是多少,这个可能要问研发,当nginxA收到数据向后发送代理时,开始进行会话传输,假如说会话超时是10S,断开后,经过山山5S,液橘数据又到nginxB了,那么先前的会话并没有断开,你再去连肯定逗埋中会超时,所以解决方案就是看下会话时间还有nginx的会话保持时间是多少,建议改成0或者自己调节,默认记得keepalive_timeout是60,如果架构是一台nginx做反向代理,基本没有这个问题。可能我理解也有不对
追问
已经确定问题了。是同一个请求进来,分发给了两个节点,nginx代理方式是权重轮询,之后为了正常我改成了ip_hash模式,但是他还是有部分部分请求转发给了两个不同得节点。在同一时刻,查看得$upstream_addr有两个ip地址
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式