2011-03-11 2 views
6

Django를 다중 사이트 프로젝트에 사용할 계획입니다. 각 사이트는 대부분 독립적이지만 모든 사이트에서 몇 가지 모델을 공유합니다.단일 설치, 여러 도메인 및 앱?

각 장고 '앱'을 고유 한 도메인 이름으로 완성하고 각 사이트가 사용자 계정, 프로필 등에 대한 일부 모델을 포함하는 일반적인 앱에 액세스 할 수 있도록 허용하는 방법이 있는지 궁금합니다. .

계획은 사용자가 로그인 한 번 각 사이트에 대해 쿠키를 일반적인 응용 프로그램을 통해 계정 정보를 공유하고, 생성, 각 사이트에 싱글 사인온 (SSO)을 사용 있도록하는 것입니다.

내가 장고는 '사이트'가 알고 기능,하지만 이것이 내 요구에 충분히 견고한 지 모르겠습니다.

누구든지이 작업을 수행하거나 도움이 될 수있는 기사를 알려줄 수있는 방법을 권장 할 수 있습니까?

UPDATE

그냥 아파치를 통해 가능한 것, 그리고 아마도 urls.py에 약간의 수정은 URL 구조에 특정 도메인을 지적 할 수 궁금해?

예를 들어 주 사이트가 mainsite.com이라고 가정하고 다른 도메인 중 하나가 같은 사이트 내에서 django 앱인 mainsite.com/secondarysite를 가리 키도록하고 apache가 사실을 마스크하도록합니다. secondarysite.com 도메인이 실제로 다른 위치를 가리키고 있는지 확인하십시오.

답변

6

Re. 귀하의 업데이트 : mainsite.com/secondarysite와 같은 URL을 사용자가 직접 사용할 수 없도록하려는 경우가 아니면 URL 구조를 위장 할 필요가 없습니다.

나는 name-based virtual hosting을 사용한다고 가정합니다. 하나의 간단하지만 매우 유연한 접근 방식은 각 <VirtualHost> 지시어가 일반적인 mod_wsgi 구성 지시문을 통해 다른 wsgi 스크립트를 호출하도록하고, 각 wsgi 스크립트는 os.environ['DJANGO_SETTINGS_MODULE']이 다른 설정 파일을 가리 키도록 설정할 수 있습니다.

각 설정 파일의 ROOT_URLCONF가 다를 수 있으므로 필요에 따라 다른 경로에서보기를 구성 할 수 있습니다. include 메커니즘을 활용하십시오.

두 도메인 모두에서 동일한 데이터베이스를 사용하려면 두 설정 파일 모두 세 번째 파일에서 데이터베이스 구성을로드하십시오 (예 : settings_shared.py. 또는 일부 모델을 공유 데이터베이스로 라우트하고 다른 모델을 사용하지 않으려면 that's possible too을 지정하십시오. 그것은 그 각 도메인에 대해 구성 할 수있는 방법을 쉽게 상상할 수 :

from settings_shared import DATABASES_SHARED 
DATABASES = DATABASES_SHARED.copy() 
DATABASES.update({ ... }) 

이 방법은 각 도메인의 URL 및 데이터베이스 구성을 담당한다. 그러나 싱글 사인온은 처리하지 않습니다.

은 "장고 SSO"를 검색해보세요)이 SSO 부분에 대한

는, 정말 사용자가 원하는 경험과 얼마나 많은 시간을 당신이 어떤 종류의 따라 달라집니다.관련 많은 질문은 예를 들어, 여기에 있습니다 : Implementing Single Sign On (SSO) using Django, How to build a secure Django single signon between different sites?, Django + Google SSO openid, Integrating Django and .Net applications using Single Sign On (SSO), (Django) Sharing authentication across two sites that are on different domains

0

나는 이것에 대해 this guy 대화를 생각합니다.

+0

링크 아아, 죽었어요. – mrooney

+0

@mrooney 님이 그것을 고쳤습니다. thx –

관련 문제