upstream timed out (110: Connection timed out) while reading response header from upstream

Nginx异常日志如下:

upstream timed out (110: Connection timed out) while reading response header from upstream

Nginx代理配置如下:

###proxy settings start
proxy_http_version 1.1;
proxy_connect_timeout       3s;
proxy_read_timeout  3s;
proxy_send_timeout  3s;
proxy_buffer_size   128k;
proxy_buffers       256     16k;
proxy_busy_buffers_size     128k;
proxy_ignore_client_abort on;
###proxy settings end

语法:proxy_read_timeout time;

默认值:proxy_read_timeout 60s;

上下文:http,server,location

Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.

需要注意的是,这个超时时间并不是针对单个请求的响应超时时间,而是针对两个成功响应之间的间隙,即如果被代理服务器在设置时间内没有发送任何数据,连接将被关闭

proxy_http_version设置为1.1,Nginx和被代理服务器之间默认使用长连接进行通信

在req2的响应返回之前,距resp1成功返回的时间已经超过了proxy_read_timeout的设置值(proxy_read_timeout设置的值比较小,并且系统QPS较低),Nginx直接断开了连接导致无法成功获取req2的响应

修改nginx配置,将proxy_read_timeout的值由3s修改为10s

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: upstream timed out (110: connection timed out) while reading response header from upstream 意思是在从上游服务器读取响应头时,连接超时了。这通常是由于上游服务器响应时间过长或网络连接不稳定导致的。要解决此问题,可以尝试增加上游服务器的响应时间或优化网络连接。 ### 回答2: 这个错误是由于Nginx与上游服务器之间的连接超时而产生的。通常,这个问题会在Nginx尝试从上游服务器读取响应头时发生。 当Nginx在与上游服务器建立连接时,它会发送一个请求,并等待回复。如果上游服务器没有及时响应,Nginx将会超时,并返回“upstream timed out”的错误消息。 这个问题可能有几个原因: 1. 上游服务器负载过重:如果上游服务器正在处理大量的请求,那么它们可能会消耗所有可用的资源,导致响应时间变慢,从而引发超时错误。 2. 网络延迟问题:网络连接不良或严重的包丢失可能会导致Nginx在与上游服务器进行通信时超时。 3. Nginx配置错误:如果Nginx配置不正确,它可能会尝试将请求发送到不存在的上游服务器,从而导致超时错误。 为了解决此问题,可以采取以下措施: 1. 调整上游服务器负载,以确保它具有足够的资源来及时响应请求。 2. 检查网络连接,并修复任何延迟或严重的包丢失问题。 3. 检查Nginx配置,确保它正确地指向上游服务器。 在遇到“upstream timed out”的错误时,需要仔细检查错误日志以获取更多详细信息并找出错误的根本原因。处理好上述三个方面,可以有效解决该错误。 ### 回答3: 当访问网站时,经常会遇到 "upstream timed out (110: connection timed out) while reading response header from upstream" 的错误提示。这个错误提示通常是由于 Nginx 服务器无法从它的后端服务器接收到响应,在规定的超时时间内无法与后端服务器建立连接时出现的。具体来说,Nginx 服务器与后端服务器通信的过程分为两个阶段,第一个阶段是连接阶段,第二个阶段是响应阶段。如果其中一个阶段超时,Nginx 服务器就会出现该错误提示。 出现 "upstream timed out" 的错误可能有以下几个原因: 1. 后端服务器故障或者已经关闭。 2. 后端服务器响应过慢,Nginx 服务器在超时时间内未能收到响应。 3. Nginx 服务器连接过程失败,在规定时间内不能与后端服务器建立连接。 为了解决这个问题,我们需要提前知道出现这个错误的原因。首先,我们需要排除后端服务器故障的可能性,可以通过在后端服务器运行 curl 或者 telnet 命令来检查是否能够正常响应。 如果后端服务器没有故障,那么我们可以考虑调整 Nginx 服务器的配置文件来解决。可以尝试增加响应超时时间,或者减少连接超时时间,例如将超时时间从默认的 60 秒改为 120 秒。 在 Nginx 配置文件中,我们可以使用以下命令来设置超时时间: proxy_read_timeout 设置后端服务器的响应超时时间,默认值是 60 秒。 proxy_connect_timeout 设置 Nginx 服务器与后端服务器连接的超时时间,默认是 60 秒。 proxy_send_timeout 设置 Nginx 服务器向后端服务器发送请求的超时时间,默认是 60 秒。 upstream_timeout 设置 Nginx 服务器与后端服务器连接的总超时时间,包括建立连接和响应时间。默认值为 60 秒。 总之,当 Nginx 服务器出现 "upstream timed out (110: connection timed out) while reading response header from upstream" 的错误提示时,我们可以通过排除后端服务器故障的可能性和调整 Nginx 配置文件中的超时时间来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值