我必须重新启动 uwsgi 进程

我必须重新启动 uwsgi 进程

我正在使用 uwsgi 和 nginx 的组合来为我的 flask 应用程序提供服务。发生的情况是,几个小时后(在非常低的负载下,<几百个请求)请求超时,直到我重新启动 uwsgi 进程并且一切在相同的时间内再次正常工作。

这里是 nginx 配置:

server {
    listen      3001;
    server_name localhost;
    charset     utf-8;
    client_max_body_size 75M;

    location / { try_files $uri @myapp; }
    location @myapp {
        include uwsgi_params;
        uwsgi_pass unix:/my/dir/uwsgi.sock;
    }
}

我的uwsgi.ini:

[uwsgi]
#application's base folder
base = /my/dir

#python module to import
app = app
module = %(app)

home = %(base)/venv
pythonpath = %(base)

#socket file's location
socket = /my/dir/%n.sock

#permissions for the socket file
chmod-socket    = 666

#the variable that holds a flask application inside the module imported at line #6
callable = app

#location of log files
logto = /my/dir/log/%n.log
~                                

我如何启动uwsgi进程:

/my/dir/venv/bin/uwsgi --ini /my/dir/uwsgi.ini

答案1

您的堆栈(特别是没有配置并发的情况下)可能以多种方式挂起。

我建议你调查原因,而不是绕过它(使用 harakiri 之类的功能)。启用 uWSGI tracebacker 来了解应用程序卡住时发生了什么:

http://uwsgi-docs.readthedocs.org/en/latest/Tracebacker.html

相关内容