8

나는 그래서 난 그냥 내 이상적인 시나리오를 설명 할게 말하는 방법 밖에 모르는 희망 당신은 그것을 구현하는 방법 나에게 설명 할 수 DreamHost와 함께 호스팅되는 프레임 워크. 신청서는 자체 도메인 (예 : example-app.com)에서 호스팅됩니다. 기본적으로 사용자는 가입 할 수 있어야하며 자신의 도메인 인 sampleuser.example-app.com 또는 example-app.com/sampleuser를 가져야합니다. 실제로는 단일 인스턴스 인 앱의 자체 인스턴스처럼 보입니다. url을 기반으로 다른 콘텐츠를 제공합니다.SaaS 애플리케이션을 만드는 방법은 무엇입니까? 내가 젠드를 사용하여 응용 프로그램을 만드는거야 ...</p> <p>을

결국 사용자가 sampleuser.example-app.com을 가리키는 자신의 도메인 (예 : foobar.com)을 만들 수 있어야 foobar.com을 방문한 방문자가 해당 사이트가 정말로 example-app.com에서 제공하고 있습니다.

나는 그 물건의 대부분을 어떻게해야할지 모르겠다. 이 프로세스는 어떻게 작동합니까? Apache에서 펑키 한 작업을해야합니까, 아니면 DreamHost와 같은 타사 호스트에서 할 수 있습니까?

업데이트 : 조언 해 주셔서 감사합니다! 나는 총알을 물기로 결정하고 와일드 카드 하위 도메인을 사용하기 위해 호스팅 계획을 업그레이드했습니다. 그것은 내가 기대했던 것보다 싸다! 또한 opensrs.com과 같은 도메인 리셀러 프로그램에 대해서는 자체 API가 있음을 알게되었습니다. 나는이 API 중 하나를 사용하여 내 도메인 등록 문제에 대한 해결책이 될 것이라고 생각합니다.

답변

10

하위 도메인은 쉽습니다. environements를 호스팅 할 때, 대부분의 경우, 아파치는 메인 도메인 아래의 모든 서브 도메인 호출을 잡도록 설정됩니다. 와일드 카드 DNS를 정의해야하므로 * .example-app.com은 서버의 IP를 가리 킵니다. 그런 다음 웹 사이트는 해당 하위 도메인 이름에 대한 모든 호출을 포착해야합니다.

다른 도메인은 어렵습니다. 그것들은 Apache에서 가상 호스트로 구성되어야합니다 (http://httpd.apache.org/docs/1.3/vhosts/name-based.html 참조). 특히 호스트 환경에서 자동화가 어렵다는 것을 의미합니다. 호스트가이를 수행 할 수있는 API를 제공하지 않는 한 쉽습니다. (더 쉽고 가능성있는 시나리오는 귀하의 웹 사이트에 할당 된 고유 한 IP를 사용하면 귀하의 모든 Apache를 포착 할 수 있습니다 - 호스팅 제어판을 사용하여 구성하거나 상자에서 작업 한 다음 DNS 서버를 IP로 지정하는 것이 가능합니다. 당신이 당신의 웹 사이트에 필요한 모든 통화를 가리 키도록 아파치를 구성한 후

그런 다음,이 방법으로 하위 도메인 당 응용 프로그램 파티션을 differnetiate 수 있습니다

  • 는이 HTTP 요청에서 호스트 헤더를 얻을 수 귀하가 게재하고있는 모든 하위 도메인 이름이 포함 된 데이터베이스 테이블
  • 인스턴스 또는 사용자 ID를 결정하기 위해 해당 데이터베이스 테이블을 조회하고 나중에 데이터 필터링/데이터베이스 선택에 사용하십시오. "데이터베이스 응용 프로그램 인스턴스 별 "스키마.

행운을 빕니다 :)

+1

나는 유사한 아키텍처를 사용하여 응용 프로그램을 실행하고 설명 된대로 작동합니다. 공유 호스팅을 사용하는 경우 와일드 카드 호스트 (* .domain.tld)를 설정할 수 있는지 확인하십시오. –

+0

공유 호스팅을 사용 중이고 와일드 카드 하위 도메인이 지원되지 않습니다. 와일드 카드 지원에 대한 내 계정과 청원을 업그레이드 할 수는 있지만 가치가있는 것은 아닙니다. 와일드 카드를 사용하지 않는 방식으로이 작업을 수행 할 수 있습니까? 감사! – Andrew

+0

모든 호스트 헤더를 웹 사이트에 추가하려는 경우 (또는 자동화할 방법이있는 경우 - 다시 호스트에서 일부 API를 확인하십시오) - 그렇습니다.귀하의 웹 사이트는 어떻게 든 모든 주소로 통화에 응답해야합니다. 와일드 카드 DNS (또는 "모든 도메인"시나리오에 대해 지정된 IP)가 최적 일 것입니다. 호스트가 그러한 옵션을 제공하지 않으면 변경하십시오. –