当前位置: 首页 > 知识库问答 >
问题:

Nginx:上游超时(110:连接超时),同时从上游读取响应报头

孔阳平
2023-03-14

我有Puma运行作为上游应用服务器和Riak作为我的后台数据库集群。当我发送一个请求,为大约25K用户映射-减少一个数据块,并将其从Riak返回到应用程序时,我在Nginx日志中得到一个错误:

**nginx.conf**

http {
    keepalive_timeout 10m;
    proxy_connect_timeout  600s;
    proxy_send_timeout  600s;
    proxy_read_timeout  600s;
    fastcgi_send_timeout 600s;
    fastcgi_read_timeout 600s;
    include /etc/nginx/sites-enabled/*.conf;
}

**virtual host conf**

upstream ss_api {
  server 127.0.0.1:3000 max_fails=0  fail_timeout=600;
}

server {
  listen 81;
  server_name xxxxx.com; # change to match your URL

  location / {
    # match the name of upstream directive which is defined above
    proxy_pass http://ss_api; 
    proxy_set_header  Host $http_host;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache cloud;
    proxy_cache_valid  200 302  60m;
    proxy_cache_valid  404      1m;
    proxy_cache_bypass $http_authorization;
    proxy_cache_bypass http://ss_api/account/;
    add_header X-Cache-Status $upstream_cache_status;
  }
}

Nginx有一系列超时指令。我不知道我是不是漏掉了什么重要的东西。如有任何帮助将不胜感激....

共有1个答案

步骏
2023-03-14

发生这种情况是因为上游响应请求的时间太长,而NGINX认为上游已经在处理请求时失败了,所以它以错误来响应。只需在location配置块中包含并增加proxy_read_timeout即可。同样的事情也发生在我身上,我在工作中使用了一个内部应用程序的1小时超时:

proxy_read_timeout 3600;

这样,NGINX将等待一个小时(3600s),等待它的上游返回一些东西。

 类似资料:
  • 我在一个flask应用程序上使用nginx+uwsgi。在nginx设置中,服务器块具有server_name*.mydomain.com;uwsgi的位置块如下所示 我有另一个测试设置,其中所有这些设置是相同的,它的工作。有什么指示吗?当我重新启动uwsgi和nginx时,app1.mydomain.com工作,直到我加载app.mydomain.com(初始加载app.mydomain.com

  • null 我们得出的结论是,客户端可以连接到Nginx,但是Nginx在将请求重定向到FPM(可以通过端口7777访问)时没有收到响应,并显示超时错误。我们一直致力于解决Nginx和FPM之间的通信问题,但几个小时后,我们还没有找到解决方案。 注意:这个问题在我们设置的四个虚拟机中重复出现。 Nginx错误日志(注意:主机名和ip已被取消) 文件:/etc/nginx/fastcgi_params

  • 我有一种情况,其中两个WebServer是用nginx作为loadbalancer设置的,它们本身是后端。发行版是Debian Wheezy。两台服务器上的配置相同(四核32GB RAM) TCP协议

  • 我得到这样的错误: 关于这个问题,有可能从nginx conf文件中增加缓冲区大小,如下所示:上游发送太大的头,而从上游读取响应头 (供以后参考,fastcgi_buffer_size和fastcgi_buffers的默认大小为4K或8K,具体与平台有关)

  • 我正在尝试解决以下问题:“从上游读取响应标头时连接超时” 这里:nginx在请求后关闭上游连接 这些答案建议:设置和 我那样做了,但无济于事。如何进一步排除故障并找到问题? 这是我所能弄清楚的。 编辑 尝试在我的主页(https://Eastward.edu.au/,右上角)上进行一两次(假)订阅,然后访问:https://Eastward.edu.au/~do 实际错误日志显示: