python - Django 使用 'python manage.py' runserver 代替 Gunicorn

标签 python django nginx gunicorn django-manage.py

我有一个托管在 amazon ec2 linux 实例上的 django 项目。 为了在部分关闭时也运行我的应用程序,我使用 gunicorn,但我遇到了一些错误和性能下降。 当我运行命令时:

python manage.py runserver

在终端上一切正常,但当部分关闭时,应用程序无法正常工作。

在关闭 session 的情况下,如何在后台永远运行命令“python manage.py runserver”(直到我将其杀死)?

我知道有 uWSGI 但我更喜欢直接使用 django 原生命令。

提前致谢

最佳答案

这里发生的是当您的 session 关闭时脚本被 SIGHUP 信号中断。为了克服这个问题,有一个名为 nohup 的工具,它不会将 SIGHUP 传递给它执行的程序/脚本。按如下方式使用它:

nohup python manage.py runserver &

(请注意最后的 &,它是必需的,以便 manage.py 在后台而不是在前台运行)。

默认情况下 nohup 重定向文件 nohup.out 中的输出,因此您可以使用 tail -f nohup.out 来观察Django 应用程序的输出/日志。

但是请注意,manage.py runserver 不应在生产中使用。对于生产,你真的应该使用合适的 WSGI 服务器,例如 uWSGI 或 Gunicorn。

关于python - Django 使用 'python manage.py' runserver 代替 Gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289325/

相关文章:

php - 无法在 Phabricator 中上传文件

python - 在散点图上绘制折线图

python - 异常值检测 DBSCAN

正则表达式模式不支持 # 符号

php - 大约工作一天后,curl errno=6

Django 2 模型 1 "queryset"

Python:如何确保最后一行代码已完成?

python - 将季度数据框转换为每月数据框并填充每个 ID 的缺失值

python - 禁用 Django 异常格式化

python - 在 OS X 中设置 pythonpath