【问题标题】:How to run two separate django instances on same server/domain?如何在同一服务器/域上运行两个单独的 django 实例?
【发布时间】:2021-01-20 01:22:36
【问题描述】:

详细地说,我们有一台服务器来运行 django。问题是在我们将更改推送到生产环境之前,我们需要建立最终用户可以测试的“公共”测试服务器。

现在,通常我们会有production.domain.comtesting.domain.com 并分别运行它们。但是,由于我们无法控制的情况,我们只能访问一个域。我们暂时称它为program.domain.com

有没有办法设置两个完全独立的 django 实例(也就是我们不希望生产版本的管理员能够访问演示数据,反之亦然),我们有 program.domain.com/productionprogram.domain.com/development 环境?

我试图查看Djangos "sites"-framework,但据我所知,它所能做的只是分离域,而不是路径,并且它的两个“站点”都能够访问相同的数据。

但是,正如我所说,我们希望将测试数据和生产数据分开。然而,我们想让我们的最终用户测试人员访问他们可以修改的版本,保持生产、公共测试和本地开发(运行服务器命令)版本的分离。

【问题讨论】:

  • 您可以在不同的端口上运行两个独立的 Django 进程,然后在其前面有一个反向代理 Web 服务器,它侦听通常的端口 80/443 并将请求代理到一个或另一个 Django 实例/port 取决于请求的路径。
  • 这实际上是一个更好的方法。

标签: django


【解决方案1】:

我会说您使用/production/development 路径来选择要使用的数据库。你可以从这里阅读更多关于多租户的信息https://books.agiliq.com/projects/django-multi-tenant/en/latest/

【讨论】:

  • 如果用于分离测试和生产环境,我不建议使用单个 Django 实例在内部进行切换,因为您通常希望在这两个环境中运行不同版本的代码。
  • @deceze 表达了我对这种方法的担忧。我们的开发/测试版本将运行“热”代码,我们需要测试并且可能会破坏的东西。我们的生产版本应该只包含稳定的代码库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2014-06-18
  • 2023-03-14
  • 2021-05-24
  • 2012-10-26
  • 1970-01-01
  • 2015-08-10
相关资源
最近更新 更多