一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

nginx 超时问题: upstream timed out (110: Connection timed out) while reading response header from upstream

错误内容

upstream timed out (110: Connection timed out) while reading response header from upstream
[error] 13722#0: *2238682 upstream timed out (110: Connection timed out) while reading upstream

2024/01/14 07:22:39 [error] 1044985#0: *315795 upstream timed out (110: Connection timed out) while connecting to upstream, client: 222.210.61.98, server: www.51wddy2.com, request: "GET /imgck.php HTTP/2.0", upstream: "https://104.101.101.101:443/include/vdimgck.php", host: "www.abc.com", referrer: "https://www.abc.com/search.php?searchword=twilight"

错误原因

遇到的问题是Nginx反向代理服务器的上游服务器超时。这个错误消息表明,当Nginx尝试与上游服务器建立连接时,连接超时了。这可能是由于以下原因:

  1. 上游服务器不可用:可能上游服务器宕机了,或者网络有问题导致无法访问。
  2. 防火墙或安全组设置:如果上游服务器或其所在的网络有防火墙或安全组规则阻止了Nginx的访问,也可能会导致这个问题。
  3. 网络问题:可能是网络延迟或不稳定导致的。
  4. 配置问题:Nginx的代理配置可能有误,例如上游服务器的地址、端口配置错误。

解决这个问题的方法依赖于具体的原因。以下是一些可能的解决方案:

51福利网
  1. 检查上游服务器的状态:确保上游服务器正在运行,并且网络连接正常。
  2. 检查防火墙和安全组规则:确保Nginx可以访问上游服务器。
  3. 检查网络连接:确保网络连接稳定,没有延迟。
  4. 检查Nginx的配置:确保Nginx的代理配置正确,特别是上游服务器的地址和端口。

解决 nginx 反向代理时的 upstream timeout 问题

从错误日志我们可以知道,该错误是由于nginx 代理去获取上游服务器的 返回值超时了。那么这个问题是什么导致的:

  1. 该请求获取的数据比较多,后端处理该请求花费的时间较长。
  2. 也可能是代理服务器与上游服务器的网络问题

这种情况多发生在用 nginx 做反向代理的时候,例如用 nginx 做反向代理转发某一个 swagger 接口,当访问接口时报错,状态码一般为 504 ,也就是代理超时的问题。

错误解决办法

nginx 超时时间设置

官网链接:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

Syntax:proxy_read_timeout time;
Default:proxy_read_timeout 60s;
Context: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_read_timeout 参数, 该指令是指从上游服务器两次成功的读操作耗时的超时时间,也就意味着从上游服务器成功读操作后,过了60S,没有再从上游服务器成功读操作的话,就会关闭该连接。

其实这是由于超时问题造成的,解决方案如下:

默认值是 60s ,我们可以设置为240s,或者300s。来应对上游服务器处理请求慢的问题。

一般我们用的是 nginx 的 proxy 机制做反向代理,此时我们需要修改 nginx 配置文件 nginx.conf ,在nginx 的配置文件 在 http,server,location 三个位置任意一个位置
加上【如果用宝塔面板做的反向代理在/www/server/nginx/conf/proxy.conf修改】

proxy_read_timeout 300s;

或者

large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers   4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

然后重启 nginx ,一般超时问题就会解决了。修改过反向代理配置的,请在反向代理配置文件中添加。

Fastcgi 方式

  • 大多数情况下我们用的是 proxy 方式,但是有时候我们还会遇到 fastcgi 的方式,例如用 nginx 处理 php 页面的场景。其实处理方式类似,同样是修改 nginx 配置文件 nginx.conf ,在 http 或者 server 段添加如下内容:
large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;

fastcgi_connect_timeout 300;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers   4 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;

  • 然后重启 nginx ,一般超时问题就会解决了。上述配置的具体参数还需根据实际情况而定,不能一味的复制粘贴,希望能帮到大家处理对应的问题。

打赏
一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《nginx 超时问题: upstream timed out (110: Connection timed out) while reading response header from upstream》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效,不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册