我有一个运行Django,uWSGI和Nginx的项目。目前我使用默认的Django管理站点,在example.com/admin
提供服务。我想更改此设置,以便管理网站仅在admin.example.com
处可用。
这样做的最佳方式是什么?
我曾考虑过要在admin.example.com
上启动一个全新的Django项目,但是使用与运行example.com
的项目相同的数据库设置,但是我希望有更优雅的东西,因为这个将涉及在项目之间复制许多设置和应用程序。基本上两者之间的唯一区别是,一个人会安装管理站点和URL模式,一个人不会。
(我的理由是最终想要使用类似google auth proxy的东西来保护管理站点,但是非管理员登录会通过正常的身份验证后端。看起来我可以通过指定Django使用来实现这一点admin.example.com
的HTTP基本身份验证,但坚持example.com
的默认后端。)
答案 0 :(得分:6)
只需创建一个包含原始设置的新设置文件,并定义一个特殊的ROOT_URLCONF
设置。现在,您只需要在该管理子域上使用DJANGO_SETTINGS_MODULE
部署您的应用。
e.g:
from settings import *
ROOT_URLCONF = 'urls_admin'
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
url(r'', include(admin.site.urls)),
)