【问题标题】:nginx Connection timed out while reading response header from upstream从上游读取响应标头时 nginx 连接超时
【发布时间】:2017-04-01 14:14:57
【问题描述】:

我在烧瓶应用程序上使用 nginx + uwsgi。在 nginx 设置中,服务器块具有 server_name *.mydomain.com; uwsgi 的位置块就像

location /api/ {
  include uwsgi_params;
  uwsgi_pass unix:///var/uwsgi/app.sock;
  .........
}

所以问题是我可以访问 app.mydomain.com,但是当我尝试 app1.mydomain.com 时,uwsgi 日志没有显示任何请求。显示 nginx 错误日志

从上游读取响应标头时上游超时(110:连接超时),客户端:122.166.94.231,服务器:*.mydomain.com,请求:“GET /api/client/generic/ping HTTP/1.1” ,上游:“uwsgi://unix:///var/uwsgi/app.sock”,主机:“app1.mydomain.com

我有另一个测试设置,所有这些设置都相同并且可以正常工作。任何指针?当我重新启动 uwsgi 并且 nginx app1.mydomain.com 工作时,直到我加载 app.mydomain.com (app.mydomain.com 的初始加载失败,但如果我继续刷新它加载然后 app1.mydomain.com 引发 504 网关超时并且日志显示从上游读取响应标头时连接超时)。

【问题讨论】:

  • 尝试增加超时时间?
  • 我试过了,超时不是问题。 uwsgi 日志中似乎没有任何内容
  • @Sarun 你解决过这个问题吗?我们的情况与您描述的完全一样。
  • 当我在 uwsgi 设置中添加单个解释器 = true (谷歌它以正确使用)时,它起作用了。一个新添加的 python 库导致了这个问题。不知道这是否对你的案子有帮助。

标签: nginx flask uwsgi


【解决方案1】:

当我在uwsgi.ini 设置中添加single-interpreter = true 时,它起作用了。 一个新添加的 python 库导致了这个问题。

不知道这是否对其他人有帮助。

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题。 uWSGI 有“http”、“http-socket”和“socket”选项。当把 uWSGI 放在像 Nginx 这样的完整网络服务器后面时,我们应该生成 uWSGI 以原生地使用 uWSGI 协议:

    uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191
    

    更多细节来自 uwsgi 文档:https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#putting-behind-a-full-webserver

    【讨论】:

      【解决方案3】:

      查看 uwsgi 错误日志并了解问题所在对我有帮助。问题根本与 Nginx 配置无关。我的电子邮件主机已更改,代码在调用发送电子邮件代码时出现错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-15
        • 2018-10-15
        • 2015-01-27
        • 1970-01-01
        • 2018-09-21
        • 2018-03-12
        • 1970-01-01
        • 2018-05-19
        相关资源
        最近更新 更多