我希望我的Django项目可以在许多不同的端点访问。对于一个应用程序,我希望它在app.domain.com
可访问,而对于另一个应用,我希望其在dashboard.domain.com
可访问。我怎样才能做到这一点?我正在使用AWS Elastic Beanstalk和Route 53。
我试着查看Django的djangoproject.com和他们的Github repo。然而,我想不通。谢谢
您可以定义两个settings.py
文件,以及两个关联的urls.py
文件:
app_settings.py
from my_project.settings import *
ROOT_URLCONF = 'my_project.app_urls'
ALLOWED_HOSTS = ['app.domain.com']
dashboard_settings.py
from my_project.settings import *
ROOT_URLCONF = 'my_project.dashboard_urls'
ALLOWED_HOSTS = ['dashboard.domain.com']
在my_project/app_urls.py
和my_project/dashboard_urls.py
中分别定义每个网站的URL
然后用这两个不同的设置文件(例如使用DJANGO_SETTINGS_MODULE
环境变量(启动django项目的两个实例(使用uwsgi、gunicorn ou,无论您使用什么(。
这样,两个实例共享相同的代码库,但公开不同的url。
例如,使用uwsgi,您可以拥有这两个文件(具有不同的端口(:
app.ini
[uwsgi]
http = 127.0.0.1:8001
module = my_project.wsgi
processes = 4
threads = 2
pidfile = app.pid
env = DJANGO_SETTINGS_MODULE=my_project.app_settings
dashboard.ini
[uwsgi]
http = 127.0.0.1:8002
module = my_project.wsgi
processes = 4
threads = 2
pidfile = app.pid
env = DJANGO_SETTINGS_MODULE=my_project.dashboard_settings