如何 运行 一个 django 项目用于不同的客户
How to run a single django project for different customers
我使用 django
、gunicorn
和 nginx
为名为 customerA
的客户开发了名为“SANET”的 Web 应用程序,并使用 [=15] 授予他们访问权限=].
现在一位新客户customerB
订购了专用版。
这是我认为我可以做的(我希望它们都在特定服务器上):
- 从项目中复制一份并将其部署到
customerB.mydomain.com
上,就像一个完全不同的项目
- 找到一种方法来根据请求的域更改项目数据库配置
如果您能指导我选择其中一个选项或提供更好的方法,我们将不胜感激。
许多客户使用一个系统称为 "multi-tenancy",或多租户系统。
Here 是 django 包的比较,可能对此有用。
我建议您阅读其中一些文档和评论,以了解它们的工作原理以及它们是否适合您。
但是,如果您的某个客户将来想要进行额外的自定义设置,哪怕是一丁点机会,那么我建议您 运行 在单独的 django 实例(单独的数据库和 gunicorn,但您可以使用只有一个 nginx)。
这种分离使得开发和维护比使用 if
编码来区分客户更简单。
我使用 django
、gunicorn
和 nginx
为名为 customerA
的客户开发了名为“SANET”的 Web 应用程序,并使用 [=15] 授予他们访问权限=].
现在一位新客户customerB
订购了专用版。
这是我认为我可以做的(我希望它们都在特定服务器上):
- 从项目中复制一份并将其部署到
customerB.mydomain.com
上,就像一个完全不同的项目 - 找到一种方法来根据请求的域更改项目数据库配置
如果您能指导我选择其中一个选项或提供更好的方法,我们将不胜感激。
许多客户使用一个系统称为 "multi-tenancy",或多租户系统。
Here 是 django 包的比较,可能对此有用。 我建议您阅读其中一些文档和评论,以了解它们的工作原理以及它们是否适合您。
但是,如果您的某个客户将来想要进行额外的自定义设置,哪怕是一丁点机会,那么我建议您 运行 在单独的 django 实例(单独的数据库和 gunicorn,但您可以使用只有一个 nginx)。
这种分离使得开发和维护比使用 if
编码来区分客户更简单。