2009-08-20 3 views
1

거의 플러그 인 가능한 앱으로 장고 프로젝트를 개발했습니다.Django를 SaaS (베이스 캠프 스타일)로 배포

이 프로젝트를 SaaS (basecamp와 비슷한 것)로 제공하고 싶습니다.

즉 : project1.mysaas.com, project2.mysaas.com 등

내가 나에게 길을 보여주는에 전문 지식을 추구합니다. 나는 생각했다

방법은 다음과 같습니다

  • 1 사용 사이트는
  • 2 미들웨어 따라
  • 3 장고 프로젝트를 생성 요청을 감지 한 다음 설정 설정하기 특정 사이트 settings.py (복용을 정의 할 수 플러그 가능 앱) 각 사이트에 대해

감사합니다.

btw, 전 초보자입니다.

답변

3

요구 사항이 모두 명확하지는 않지만 사용자가 까다로울뿐 아니라 "project1", "project2"는 특별한 브랜딩이 필요없는 고객 이름이라고 가정합니다. 당신의 아이디어에 대한 첫 번째

:

  1. 당신은 아마 각 사이트가 다른 브랜드하지 않는 사이트의 프레임 워크를 사용할 필요가 없습니다. 사이트 프레임 워크는 설계된 작업을 잘 수행하며 공통된 데이터 세트에 대한 다양한 견해를 제시합니다.

  2. 이 방법이 효과적 일지 모르지만 IMO에 가장 적합합니다.

  3. 이것은 관리하기 어려운 것입니다.

많은 문제가 있기 때문에 지금은 매우 어려운 주제입니다. 독서를 시작하는 알맞은 장소는 High Scalability Blog이며 특히 관련이있는 사람은 37signals Architecture입니다.

마지막으로

, 여기에 내가 (즉 극단적 인 확장 성을 필요로하지 않는다) 작은 SaaS는 응용 프로그램에서 수행하고있는 작업은 다음과 같습니다

  • 를 사용하여 사이트 프레임 워크 (사용자 페이지가 파트너/리셀러 브랜드 될 것입니다 때문에 각 파트너는 고유 한 로그인 페이지를 가짐)

  • 모든 장고 인스턴스의 리소스 사용을 최소화하려면 mod_wsgi를 사용하십시오.

  • 미들웨어 대신 사용자의 회사를 식별하는 모든보기의 상단에 공통 코드를 넣습니다. 뷰에 논리가 필요한 이유가 미들웨어에서 유용하다고 생각하지 않습니다.

+1

대단히 감사합니다. 내가하려는 일을 설명하는 가장 간단한 방법은 내가 만들고있는 Django 프로젝트가 Basecamp와 동일하다는 것입니다.그런 다음이 프로젝트를 여러 사용자에게 제공하고 싶습니다. 각 프로젝트마다 Basecamp와 같은 프로젝트 공간이 있습니다. –