我有一个用Python Django编写的应用程序。
我想有两个这样的运行实例 - 一个生产版本和一个测试版本,我可以在其中推送新功能并让用户测试它们。我希望网址是:
top.level.domain/production/url-to-specific-page/
和
top.levl.domain/test/url-to-specific-page/
我的系统管理员在conf.d中为我设置了一个Apache文件,我可以编辑虚拟主机。我尝试在这里添加两个脚本别名,但它们最终指向首先访问的应用程序的任何版本。
<VirtualHost *:80>
ServerName myserver.cat
ServerAlias list-of-server-names
DocumentRoot /var/www/html/myserver.cat
ErrorLog /var/log/httpd/myserver_error.log
CustomLog /var/log/httpd/myserver.cat_access.log common
AccessFileName .htaccess
<Directory /var/www/html/myserver.cat>
AllowOverride All
</Directory>
<Directory /var/www/html/myserver.cat/data>
AllowOverride All
Options +Indexes
</Directory>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
Alias /static /var/www/html/myserver/myapplication/webform/db_sync/static
WSGIScriptAlias /sampleimport /var/www/html/myserver/myapplication/webform/webform/wsgi.py
WSGIScriptAlias /test /var/www/html/myserver/test/myapplication/webform/webform/wsgi_test.py
</virtualhost>
wsgi.py如下
import sys
code_directory = 'directory/where/django/prod/code/lives'
sys.path.append(code_directory)
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webform.settings_prod")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
wsgi_test.py是相同的,除了code_directory变量和设置文件。
当我运行此设置时,不同的URL似乎指向同一个数据库,具体取决于首先访问哪个测试/生产。我假设DJANGO_SETTINGS_MODULE正在设置,然后在访问其他URL时不会更改。
设置这样的两个实例的正确方法是什么?