详细说明,我们设置了一台服务器来运行 django。问题是,在将更改推送到生产之前,我们需要建立最终用户可以测试的“公共”测试服务器。
现在,通常我们会有
production.domain.com
和 testing.domain.com
并分别运行它们。然而,由于我们无法控制的情况,我们只能访问一个域。我们暂时称其为 program.domain.com
。
有没有办法设置两个完全独立的 django 实例(也就是我们不希望生产版本的管理员能够访问演示数据,反之亦然),这样我们就有
program.domain.com/production
和 program.domain.com/development
环境?
我试图查看Django的“站点”框架,但据我所知,它所能做的就是分离域,而不是路径,并且它的两个“站点”都能够访问相同的数据。
但是,正如我所说,我们希望将测试数据和生产数据分开。然而,我们希望让我们的最终用户测试人员能够访问他们可以修改的版本,保持生产、公共测试和本地开发(runserver 命令)版本的分离。
我想说你使用
/production
或 /development
路径来选择要使用的数据库。您可以从这里阅读有关多租户的更多信息https://books.agiliq.com/projects/django-multi-tenant/en/latest/
Apache虚拟主机可以实现这一点,您可以简单地配置如下(假设它们具有相同的依赖关系):
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
WSGIDaemonProcess myproc processes=2 threads=15 python-home=/path/to/myenv/venv
WSGIProcessGroup myproc
WSGIScriptAlias /myapp1 /path/to/myapp1/wsgi/main.wsgi
<Directory /path/to/myapp1/wsgi>
Require all granted
</Directory>
WSGIScriptAlias /myapp2 /path/to/myapp2/wsgi/main.wsgi
<Directory /path/to/myapp2/wsgi>
Require all granted
</Directory>
</VirtualHost>
您可以参考这篇博客文章了解更多配置选项。