繁体   English   中英

在具有主管的情况下运行nginx / postgres-是否必需?

[英]running nginx/postgres with supervisord - required?

在我见过的所有标准django生产设置模板中,gunicorn是与超级用户一起运行的,而nginx / postgres没有在超级用户下配置。

任何原因? 生产系统需要这吗? 如果没有,为什么不呢?

在这种架构中,Gunicorn充当运行我们的Django代码的应用服务器。 Supervisor只是一个进程管理实用程序,如果崩溃,它将重新启动Gunicorn服务器。 由于我们的错误代码,Gunicorn服务器可能会崩溃,但是nginx和postgres保持不变 因此,在基本配置中,我们仅通过主管来监督gunicorn进程。 尽管我们也可以对nginx和postgres做同样的事情。

您需要gunicorn的主管,因为它是一台简单的服务器,没有任何工具可以重新启动它,在系统启动时运行,在系统关闭时停止它或在崩溃时重新加载。

Postgresql和nginx可以在这方面照顾好自己,因此无需在超级用户下运行它们。

实际上,您可以只使用init.d,upstart或system.d来启动,停止和重新启动gunicorn,supervisor是处理诸如gunicorn之类的小型服务器的简便方法。

还请考虑在一个系统上运行多个django应用程序是常见的,并且需要多个单独的gunicorn实例。 主管将比init,upstart或system.d更好地处理它们

还有uWSGI服务器不需要主管,因为它具有内置功能来处理多个实例,可以在代码更改时启动,停止以及自动重新加载。 看一下uWSGI皇帝系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM