2010-03-26 3 views
0

일반적으로 Django 및 Apache 구성은 매우 간단합니다.DNS 또는 Apache를 사용하여 URL을 Django 앱으로 리디렉션/리 맵핑

하지만 이제는 동일한 서버에 여러 개의 응용 프로그램을 작성하고 있으며 각 응용 프로그램마다 개별 도메인이 있어야합니다.

앱은 www.myserver.com/app/app1 (app2 ...)에 있으며 www.someawesomedomain.com을 사용하여 액세스하고 싶습니다. 기본 경로를 노출하고 싶지 않기 때문에 리디렉션을 원하지 않습니다.

5 - 10 개 사이트의 컨텍스트에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

저는 Apache2를 사용하고 있습니다.

답변

0

가장 좋은 방법은 아마도 각 도메인마다 고유 한 settings.py 및 urls.py 파일을 사용하는 것입니다.

일반적인 설정이 모두있는 기본 설정 파일을 사용하고 일반적인 설정 파일을 모두 가져 와서 ROOT_URLCONF 설정을 덮어 쓰는 사이트 별 설정 파일이 있습니다. 당신이 아파치에 mod_wsgi에를 사용하는 가정

from projectname.configs.settings import * 

ROOT_URLCONF = 'projectname.configs.site1.urls' 

:

사이트의 각 설정에서 다음
- configs 
-- settings.py 
-- site1 
--- settings.py 
--- urls.py 
-- site2 
--- settings.py 
--- urls.py 
... 

당신이 그런 짓을 할 파일 :이 같은 설정 뭔가를 배치 할 수

그런 다음 각 wsgi 파일에서 이와 같은 작업을 수행하여 해당 사이트의 관련 설정 모듈을 지정합니다.

os.environ["DJANGO_SETTINGS_MODULE"] = "projectname.configs.site1.settings" 

이 방법을 사용하면 각 설정 파일에 unque SITE_ID를 지정하여 django 사이트 프레임 워크를 아주 쉽게 이용할 수 있습니다.

이 권리를 얻기위한 유일한 실제 트릭은 모든 가져 오기가 작동하도록 Python 경로를 관리하는 방법을 아는 것입니다. 수동으로 많은 파일을 만들 필요가 없다면 (5-10 개의 사이트는 괜찮을 것이지만 훨씬 더 성가 시게됩니다) 모든 파일을 생성하는 관리 명령을 작성할 수 있습니다.

관련 문제