0

我有一个运行 gunicorn 的 Django 应用程序 - 我现在想用waitress替换它。很简单,我通过安装服务员apt-get install python-waitress,并通过运行它waitress-serve --port=8080 myproject.wsgi:application

现在我想将其设置为通过Upstart文件运行(我在 Ubuntu 上)。我希望它在正常运行级别 2、3、4 和 5 上运行,并告诉它在任何其他运行级别(例如系统重新启动、关闭或单用户时)停止。我还希望 Upstart 在失败时自动重新启动服务。最后但同样重要的是,我需要waitress在端口 80 上运行,而不是端口 8080。

我的问题是:如何构建我的 Upstart 文件以反映这些要求?以及任何其他有助于添加的内容?请指教; 这是我的主要生产服务器。

其次,就waitress其本身而言,除了能够将其与 SSL 一起使用之外,使用反向代理(例如Nginx)是否有任何优势waitress?我的应用程序是一个阅读量很大的 Django Web 应用程序,用户可以在其中聚集并互相聊天。

4

1 回答 1

0

我建议不要编写自己的新贵脚本,而是研究其他知名且经过实战测试的解决方案。一种流行的解决方案是supervisor。它是纯 Python 并且很容易安装和配置。如果你安装它,apt-get它会附带所有必要的脚本,以便在 Ubuntu 本身重新启动等时运行它(尽管你很可能不会安装最新版本的主管)。安装主管后,您需要做的就是为您的 Web 服务器进程添加一个小配置。然后,当您启动主管时,它将管理您的 Web 服务器进程。这是一个示例主管配置:

[program:project_name]
command=/path/to/virtualenv/bin/waitress-serve --port=8080 myproject.wsgi:application
directory=/path/to/django/project
autostart=true
autorestart=true
redirect_stderr=True
user=www

请注意,主管可以管理多个进程,因此如果您有任何其他需要为您的 web 应用程序运行的进程,您也可以将它们添加到主管。

至于使用 nginx 的优势,还有很多关于该主题的其他 StackOverflow 问题,因此我建议您查看这些问题,而不是在这里背诵类似的想法。这是我找到的一对:

于 2015-12-11T22:40:37.233 回答