Как создать приложение SaaS? - PullRequest
8 голосов
/ 16 июня 2009

Я не знаю, как еще сказать это, поэтому я просто собираюсь объяснить свой идеальный сценарий, и, надеюсь, вы сможете объяснить мне, как его реализовать ...

Я создаю приложение с Zend Framework, которое будет размещено на DreamHost. Приложение будет размещено в собственном домене (например, example-app.com). По сути, пользователь должен иметь возможность зарегистрироваться, получить собственный домен sampleuser.example-app.com или example-app.com/sampleuser, который указывает на то, что выглядит как его собственный экземпляр приложения, который на самом деле является единичным экземпляром. показ различного контента в зависимости от URL.

В конце концов, я хочу, чтобы мои пользователи могли создавать свой собственный домен (например, foobar.com), который указывает на sampleuser.example-app.com, чтобы посетители foobar.com не замечали, что сайт действительно обслуживается с example-app.com.

Я не знаю, как сделать большинство этих вещей. Как работает этот процесс? Нужно ли делать что-то интересное с Apache или это можно сделать с помощью стороннего хоста, такого как DreamHost?

Обновление: Спасибо за совет! Я решил укусить пулю и модернизировать свой план хостинга, чтобы использовать поддомены подстановочных знаков. Это дешевле, чем я ожидал! Я также узнал о программах для реселлеров доменов, таких как opensrs.com, которые имеют собственный API. Я думаю, что использование одного из этих API будет решением проблемы с регистрацией моего домена.

1 Ответ

10 голосов
/ 16 июня 2009

Поддомены просты. В среде хостинга в большинстве случаев apache настроен на перехват всех вызовов субдоменов ниже основного домена. Вам просто нужно определить подстановочный DNS, так что * .example-app.com указывает на IP вашего сервера. Тогда ваш сайт должен перехватывать все звонки на эти имена поддоменов.

Другие домены сложны. Они должны быть настроены как виртуальные хосты в Apache - см. http://httpd.apache.org/docs/1.3/vhosts/name-based.html - это означает, что это будет сложно автоматизировать, особенно в среде хостинга, - если ваш хост не предоставит вам какой-то API для этого (легко и выполнимо Сценарий будет иметь отличительный IP-адрес, назначенный вашему веб-сайту, тогда вы можете перехватить все с вашим Apache - возможно, это можно настроить с помощью панели управления хостингом или работает из коробки - и затем просто указать DNS-серверы на ваш IP).

Затем, после того, как вы настроили свой Apache для направления всех необходимых вызовов на ваш веб-сайт, вы можете различать разделы приложений по поддоменам следующим образом:

  • получить заголовок хоста из HTTP-запроса
  • имеет таблицу базы данных, содержащую все имена поддоменов, которые вы обслуживаете
  • выполнить поиск в этой таблице базы данных, чтобы определить экземпляр или пользователя, идентификатор и использовать его позже для фильтрации данных или выбора базы данных, если вы воспользуетесь схемой «база данных на экземпляр приложения».

Удачи:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...