2011-04-12 8 views
1

많은 클라이언트에게 서비스를 제공 할 웹 응용 프로그램을 만들고 있습니다. 처음에는 mydomain.com을 로그인 방문 페이지로 설정하고 모든 사용자에 대해 하나의 방대한 데이터베이스를 갖도록 할 것이지만이 방법에 대한 단점을 예상했습니다. BaseCamp는 예를 들어, 가입 할 때 myclientname.basecamphq.com과 같은 제품의 "인스턴스"에 대한 하위 도메인을 제공합니다.클라이언트 당 하위 도메인?

제 질문은 BaseCamp가 자체 별도의 웹을 가지고 있습니까? 별도의 데이터베이스가있는 각 인스턴스의 응용 프로그램? 누구든지이 프로세스를 설정하는 데 유용한 가이드가 있습니까?

감사합니다.

답변

1

하위 도메인을 사용하려는 경우 예 각각은 IIS에서 별도의 웹 응용 프로그램이됩니다. 기본 개념은 IIS가 동일한 IP이지만 주소가 다른 요청을 처리하는 방법에 대한 것입니다. IIS는 Host HTTP 헤더를 읽고 s1.example.com 인 경우 bindings을 기반으로하는 peper 응용 프로그램을 나타냅니다. 데이터베이스를 분리하면 결정이 내려집니다.

개념적으로 분리가 필요하지 않은 경우 기술 문제로 인해 분리하지 마십시오. 또한 데이터베이스에있는 ParentId (tblCustomers -> tblUsers 사이의 일대 다 관계)을 기반으로 사용자를 분리 할 수 ​​있습니다.

여러 데이터베이스/하위 도메인을 관리하는 것은 빙의 통합 솔루션 (데이터베이스 설계 변경 또는 서버의 IP 주소 변경 및 DNS 레코드 변경 고려)보다 많은 골치 거리를 가지고 있습니다.

0

모든 하위 도메인을 동일한 IP에 매핑하는 DNS 서버가 있어야합니다. 그런 다음 HTTP 요청 (이름 기반 가상 호스팅)에서 하위 도메인을 가져옵니다. 다른 하위 도메인간에 상호 작용이 전혀없는 경우 모든 사용자에 대해 개별 데이터베이스를 가질 수 있습니다. 이렇게하면 도메인 백업도 쉽게 수행 할 수 있습니다. 하위 도메인간에 공통 상태 및/또는 기본 교환이있는 경우 공유 데이터베이스를 대신 가질 수도 있습니다. 별도의 액세스 자격 증명을 사용하여 별도의 데이터베이스를 보유하면 보안이 다소 향상됩니다.

+0

이 분야의 시장 동향을 알고 있습니까? 사람들이 일반적으로이 일을하고 있습니까? 나는 그것이 사건에 의한 것임을 알지만, 전반적인 경향이 있어야합니다. 감사. – skaz