• nginx响应超时,报错:upstream timed out (110: Connection timed out) while reading response header from upstream


    • 问题描述:
      • [error] 29605#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 125.118.102.87, server: www.amai1.com, request: "GET /account/signin HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: "www.amai1.com"
      • 日志文件生成的错误信息有一定的时间延迟
      • 报错信息:
      • 请求日志(同一时间点有多个请求)
    • 解决方法:
      • 根据报错信息查看网上的大部分的原因是:nginx proxy的超时时间太短等nginx配置的优化等,但是修改了之后,依然报同样的错误
      • 根据请求日志的信息:
        • 上述可以看到在同一个时间点出现了两个请求,并且一个成功,一个失败,并且访问日志有很多499响应码的请求。而499响应码是说/* 499, client has closed connection */.就是说客户端主动关闭了连接,或者nginx两次提交post间隔过快也会出现此问题。

            1、客户端主动关闭连接,是因为过了设置的超时时长就会关闭连接。这个又回到了10s的超时时长和频繁的发生time out现象的问题上了。

            2、提交POST请求过快,nginx会认为属于不安全的请求,便主动拒绝连接。这个有可能是客户端那边不间断的测试数据导致,对于这种情况,可以对nginx的配置文件进行配置以下参数来进行不主动关闭。proxy_ignore_client_abort on;(不安全的方式),但是问题依然未解决

      • 最后发现是redis服务器过期了,尴尬了一批,重新续期后,系统恢复了,搞定。
      • 试了一下,数据库服务器连接失败,session服务器过期同样会报上面的错误,所以以后报这样的错,可以看一下是否是数据库,session,redis服务器是否过期
    • 参考文档:http://blog.51cto.com/chenpipi/1682450
    有罪是符合人性的,但长期坚持不改就是魔鬼。
  • 相关阅读:
    数值项目的格式化
    ORACLE ERROR CODE代表的意思
    深入了解 Microsoft AJAX Library
    调用MSScriptContro来运算字符串表达式
    C# 调用带参数EXE文件及带启动参数EXE制作
    将DataTable或Ilist<>转换成JSON格式
    客户端控件调用服务器的参数
    调用ICodeCompiler来计算字符串表达式
    录像工具
    今天是开博客园的第一天
  • 原文地址:https://www.cnblogs.com/yu-yuan/p/9619127.html
Copyright © 2020-2023  润新知