在同一计算引擎服务器/Docker上部署多个Python应用程序

在同一计算引擎服务器/Docker上部署多个Python应用程序,python,gunicorn,Python,Gunicorn,我是一名PHP开发人员(10年),目前正在学习Python(2个月) 我目前在Compute Engine上有一个服务器,大约有10个域,托管着10个不同的网站/应用程序。 每个应用程序都有诸如SSL、缓存、数据库连接等要求 我正在构建一些Python(Django和Flask)应用程序,我坚持部署它们。当我使用 python manage.py runserver 0.0.0.0:80 终端已被占用,我无法在其他端口上启动其他应用程序。Gunicorn也有同样的问题 每个Python应用程

我是一名PHP开发人员(10年),目前正在学习Python(2个月)

我目前在Compute Engine上有一个服务器,大约有10个域,托管着10个不同的网站/应用程序。 每个应用程序都有诸如SSL、缓存、数据库连接等要求

我正在构建一些Python(Django和Flask)应用程序,我坚持部署它们。当我使用

python manage.py runserver 0.0.0.0:80 
终端已被占用,我无法在其他端口上启动其他应用程序。Gunicorn也有同样的问题

每个Python应用程序都有一个数据库连接、SSL、缓存等

对于我的PHP应用程序,我使用Nginx指向文件夹,使用LetsEncrypt向站点添加SSL,并且我可以使用每个应用程序的不同文件夹在同一服务器上部署应用程序。我还可以从ComputeEngine管理员(我需要这样做)重新启动服务器,一旦服务器启动,所有网站都可供最终用户使用

我想了解如何使用Python做同样的事情。由于这些项目没有得到支付/带来收入,由于成本原因,我无法将它们托管在自己的服务器上

我使用Docker容器在我的计算机上进行开发,因此我知道我可以在单独的容器上部署每个应用程序。我不想走这条路


提前感谢您的帮助。

如果gunicorn不是您的硬性要求,您可以使用它的模式尝试uWSGI

简单地说:emperon监视一些源(即目录),并正在查找Vassals(您的应用程序)配置文件,以运行和管理它们。因此,只需一点努力,您就可以创建一个配置,以使用单个进程运行所有应用程序(这将在后台生成另一个进程,但据我所知,这不是问题)


<>但是,你应该考虑在不同的容器中部署这些应用程序,因为这种方法缺少集装化的观点。< / P>我不理解你的问题。runserver无论如何都不用于生产用途;但是当使用gunicorn时,为什么不在不同的端口上运行它们呢?特别是如果您使用nginx作为反向代理,gunicorn应用程序运行在哪个端口并不重要。当我使用gunicorn启动应用程序时,
gunicorn-b 0.0.0.0:80 wsgi&
终端已被占用,并显示服务正在运行<代码>收听:http://0.0.0.0:80,如何在同一台服务器上启动另一个应用程序?如我所说,不要在端口80上运行任何应用程序。无论如何,Gunicorn不应该暴露在外部;使用nginx作为反向代理(尽管我必须说,如果您在同一个容器中运行多个应用程序,那么您严重缺少Docker的意义。)这是关于成本因素的。一个简单的LAMP docker容器需要大约200MB的Ram。我在服务器上运行了大约10个应用程序(实际上是20个)。10*200MB=~2GB。这方面的成本约为每月24.67美元,这对于我从事的项目来说是不可行的。Docker擅长包含整个应用程序。我喜欢它,并希望有朝一日将其用于关键应用程序。谢谢,我将研究这种方法。