运行 Django python 作为守护进程
Run Django with python as daemon
我们有网络应用程序,它是 运行 django、python 和 PostgreSQL。我们也在使用 virtualenv。
要启动 web 服务,我们首先激活 virtualenv,然后使用 nohup 在 8080 上启动 python 作为服务。
但一段时间后 nohup 进程终止。有没有办法像 apache 一样像恶魔一样启动服务,或者使用像 monit 这样的东西?
我是新手,请原谅我的错误
使用 apache 或 ngnix 部署您的应用程序可能是个好主意。有关于如何使用 apache 执行此操作的官方 Django 文档 - https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/
Apache 确实支持虚拟环境 - 在使用 mod_wsgi 的守护程序模式时,只需将 python-home=<path_to_your_virtual_env>
添加到 WSGIDaemonProcess
指令:
WSGIDaemonProcess django python-path=/opt/portal/src/ python-home=/opt/venv/django home=/opt/portal/
有关如何使用 mod_wsgi 和虚拟环境的最佳实践,请参阅:
所以 runserver
命令只能在测试环境中使用。就像@Alasdair 所说的那样,Django 文档已经有了关于该主题的有趣信息。
我建议使用 gunicorn
作为 wsgi,使用 nginx
作为反向代理。您可以找到更多信息 here
我建议使用 supervisor
来监视和控制你的 gunicorn worker。可以找到更多信息 here
我能够做到,但忘记更新 answers.IF 任何正在寻找相同内容的人都可以按照此进行操作。
在生产中 运行 django 应用程序的最佳方法是 运行 和
django+gunicorn+supervisor+nginx.
我使用了 gunicorn,它是一个 Python UNIX 的 WSGI HTTP 服务器,您可以在其中控制线程数、超时设置等等。 gunicorn 运行ning 在套接字上,它可能在端口上 运行 但为了减少 tcp 开销,我们 运行 在套接字上。
Supervisor 用于 运行 这个 gunicorn 脚本作为 supervisor 是一个简单的工具,用于控制你的过程。
在 nginx 反向代理的帮助下,我们的 Django 网站就活了。
有关更多详细信息,请关注以下博客。
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/
我们有网络应用程序,它是 运行 django、python 和 PostgreSQL。我们也在使用 virtualenv。
要启动 web 服务,我们首先激活 virtualenv,然后使用 nohup 在 8080 上启动 python 作为服务。
但一段时间后 nohup 进程终止。有没有办法像 apache 一样像恶魔一样启动服务,或者使用像 monit 这样的东西?
我是新手,请原谅我的错误
使用 apache 或 ngnix 部署您的应用程序可能是个好主意。有关于如何使用 apache 执行此操作的官方 Django 文档 - https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/
Apache 确实支持虚拟环境 - 在使用 mod_wsgi 的守护程序模式时,只需将 python-home=<path_to_your_virtual_env>
添加到 WSGIDaemonProcess
指令:
WSGIDaemonProcess django python-path=/opt/portal/src/ python-home=/opt/venv/django home=/opt/portal/
有关如何使用 mod_wsgi 和虚拟环境的最佳实践,请参阅:
所以 runserver
命令只能在测试环境中使用。就像@Alasdair 所说的那样,Django 文档已经有了关于该主题的有趣信息。
我建议使用 gunicorn
作为 wsgi,使用 nginx
作为反向代理。您可以找到更多信息 here
我建议使用 supervisor
来监视和控制你的 gunicorn worker。可以找到更多信息 here
我能够做到,但忘记更新 answers.IF 任何正在寻找相同内容的人都可以按照此进行操作。 在生产中 运行 django 应用程序的最佳方法是 运行 和
django+gunicorn+supervisor+nginx.
我使用了 gunicorn,它是一个 Python UNIX 的 WSGI HTTP 服务器,您可以在其中控制线程数、超时设置等等。 gunicorn 运行ning 在套接字上,它可能在端口上 运行 但为了减少 tcp 开销,我们 运行 在套接字上。
Supervisor 用于 运行 这个 gunicorn 脚本作为 supervisor 是一个简单的工具,用于控制你的过程。
在 nginx 反向代理的帮助下,我们的 Django 网站就活了。
有关更多详细信息,请关注以下博客。
http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/