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

上游超时(uWSGI+NGINX+Flask)

屠晟睿
2023-03-14

我的应用程序有以下堆栈:

  1. Nginx(1.4.6)
  2. UWSGI(1.9.17.1-Debian(64bit))
  3. 烧瓶
  4. Python 3.4

NGINX重启后的问题在一段时间内(几分钟)都能正常工作。在此期间之后,我收到一个“504网关超时”错误。

NGINX日志:

*13从上游读取响应标头时上游超时(110:连接超时),客户端:86.123.39.44,服务器:app.fc.com,请求:“get/dashboard/overview http/1.1”,上游:“uwsgi://127.0.0.1:8001”,主机:“app.fc.com”,引用者:“http://app.fc.com/dashboard/overview”

uWSGI日志:

server {
        listen 80;
        listen [::]:80;

        root /var/www/fc/website;
        index index.html index.htm index.php;

        # Make site accessible from http://localhost/
        server_name app.fc.com;

        location / {
                sendfile        on;
                client_max_body_size 20M;
                keepalive_timeout  0;

                proxy_connect_timeout   10;
                proxy_send_timeout      15;
                proxy_read_timeout      20;

                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8001;
                #uwsgi_read_timeout 30;
                #uwsgi_send_timeout 30;
                uwsgi_connect_timeout 60;
                uwsgi_ignore_client_abort on;
        }
}

我的uWSGI配置是:

[uwsgi]
vhost = true
socket = :8001
#wsgi-file = /var/www/app.fc.com/reviewApp/wsgi.py
wsgi-file = /var/www/fc/app/wsgi.py
callable = app
processes = 2
threads = 4
chdir = /var/www/fc/app/

pythonpath = /var/www/fc/app/
pythonpath = /var/www/py3/lib/python3.4
virtualenv = /var/www/py3
plugins = python3

通常,对我请求的响应持续不到5秒

共有1个答案

秦珂
2023-03-14

解决方案

我已经在Redis被调用的页面上发现了这种行为。我通过在Redis为每个请求添加一个新的连接并在Redis配置中设置连接空闲超时来解决(短时间解决方案)这个问题。

其他发现

当连接在许多uWSGI线程之间共享时,Redis似乎在300秒不活动后挂起约931秒(这是该问题出现后的间隔)。

 类似资料:
  • 我的nginx配置: 这是nginx或uwsgi的问题,还是两者都有?

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6

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

  • 我有Puma运行作为上游应用服务器和Riak作为我的后台数据库集群。当我发送一个请求,为大约25K用户映射-减少一个数据块,并将其从Riak返回到应用程序时,我在Nginx日志中得到一个错误: Nginx有一系列超时指令。我不知道我是不是漏掉了什么重要的东西。如有任何帮助将不胜感激....

  • 很好用。但是,如果我发布了一个更大的json文件,我会得到一个504:Gateway超时。 我感觉Nginx和Uwsgi之间的通信有一个问题,但我不知道如何解决它。 编辑:我跳入docker容器并手动重启nginx以获得更好的日志记录。我收到以下错误: /etc/nginx/conf.d/nginx.conf: /etc/nginx/conf.d/upload.conf: