为pythonwaitress构建一个Upstart文件

2024-06-02 12:05:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个运行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)与{}一起使用有什么好处吗?我的应用程序是一个阅读量很大的Django web应用程序,用户可以聚集在一起聊天。在


Tags: install文件django端口应用程序getportmyproject
1条回答
网友
1楼 · 发布于 2024-06-02 12:05:18

我建议您不要编写自己的新贵脚本,而是研究其他著名的、经过战斗考验的解决方案。其中一个流行的解决方案是supervisor。它是纯Python,安装和配置非常容易。如果你用apt-get安装,它会附带所有必要的脚本,以便在Ubuntu重新启动时运行它,等等(尽管很可能你不会安装最新版本的supervisor)。一旦安装了supervisor,您只需为web服务器进程添加一个小配置。然后,当您启动supervisor时,它将管理您的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

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

至于使用nginx的好处,关于这个主题还有很多其他的StackOverflow问题,所以我建议您先看看这些问题,而不是在这里背诵类似的思想。以下是我发现的一对:

相关问题 更多 >