Django、uWSGI 和 nginx:进程“无故”死亡

2023-12-22

我正在使用 uWSGI 和 nginx 运行两个并行的 Django 应用程序。其中一个负载稍大一些(两者都非常小),大约每 24 小时就会死机一次,并显示以下消息:

[pid: 16358|app: 0|req: 1000/1000] 127.0.0.1 () {46 vars in 847 bytes} [Thu Mar 24 16:38:31 2011] GET /aktivitet/409/picknick/ => generated 18404 bytes in 117 msecs (HTTP/1.0 200) 3 headers in 156 bytes (1 switches on core 0) ...The work of process 16358 is done. Seeya!

我使用具有以下配置的 Supervisor 启动进程:

[program:uttrakad] command=/home/myuser/webapps/uwsgi_test/bin/uwsgi -s /home/myuser/webapps/uwsgi_test/app1.sock -C /home/myuser/webapps/django/app1.wsgi --processes 1 --harakiri 120 --max-requests 1000 autostart=true autorestart=true stdout_logfile=/home/myuser/logs/user/uwsgi_app1.log redirect_stderr=true stopsignal=QUIT

.wsgi 文件很简单:

import os import sys sys.path =['/home/openworks/webapps/django/lib/python2.6/','/home/openworks/webapps/django/','/home/openworks/webapps/django/app1/'] + sys.path from django.core.handlers.wsgi import WSGIHandler os.environ['DJANGO_SETTINGS_MODULE'] = 'app1.prod_settings' application = WSGIHandler()

nginx 设置有 2 个工作进程,2048 个工作连接,如下所示: location / { uwsgi_pass unix:///home/openworks/webapps/uwsgi_test/app1.sock; include uwsgi_params; }

正如我所说,还有一个应用程序以完全相同的方式配置,一直在不间断地运行,但几乎没有流量。

有什么线索吗?为什么我会得到“...进程16358的工作已经完成。再见“ 信息?

Thanks


查看日志:req: 1000/1000

并且您已将最大请求数设置为 1000。

即使在supervisord下,你也应该始终在uwsgi上添加--master/-M,这将允许重新启动应用程序而不会丢失套接字(并且不会在重新启动期间向客户端吐出错误)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django、uWSGI 和 nginx:进程“无故”死亡 的相关文章

随机推荐