Разрешение использования пользовательских доменных имен для проектов веб-приложений - PullRequest
2 голосов
/ 13 июля 2011

Хотелось бы узнать, как лучше включить пользовательские домены при создании веб-приложений. Например, если вы смотрите на что-то вроде Base Camp, когда вы регистрируетесь на это, вы создаете свой собственный «поддомен», к которому вы используете для входа в ваш базовый лагерь с помощью.

Кроме того, если вы смотрите на это как на хостинговые сайты электронной коммерции, вы можете использовать свой собственный домен вместо того, чтобы использовать их субдомен.

Лично я не вижу, чтобы эти веб-приложения "парковали" каждый пользовательский домен в учетной записи хостинга веб-приложений или добавляли DNS, если он использует субдомен, как это делает Base Camp.

Поэтому единственный способ, которым я могу думать о том, чтобы что-то делать динамически, - это, возможно, использовать mod_rewrite, чтобы перенаправить все в определенный скрипт, который выполняет «маршрутизацию» на основе URL. Затем для пользовательских доменов клиенту просто нужно добавить CNAME для своего домена в нечто вроде custom.webappname.com, которое затем, в свою очередь, будет обработано mod_rewrite и файлом маршрутизации php.

Если это лучший способ продвижения вперед, есть ли проблемы с производительностью при маршрутизации всех входящих запросов через этот «файл маршрутизации»?

Извините, если мне не ясно, попытался объяснить как можно лучше.

Ответы [ 3 ]

0 голосов
/ 13 июля 2011

Это действительно зависит от веб-приложения, с которым вы работаете.

Например, у нас есть размещенная CMS, используя API cPanel, мы создаем фактическую учетную запись хостинга для каждого клиента и устанавливаем около 50 КБ файлов при создании учетной записи, включая шаблон по умолчанию, сценарий начальной настройки (обрабатывает БДустановка, первоначальное заполнение данными и основные настройки (помимо всего прочего), а также несколько базовых сценариев управления интерфейсом, таких как форма контакта, говоря, что мы не предоставляем доступ к учетной записи хостинга, все взаимодействие осуществляется через наше веб-приложение.В нашем случае это независимо от того, является ли субдомен или полностью квалифицированным доменом.У наших клиентов есть возможность самостоятельно разместить свой домен, или мы разместим его, потому что у нас есть полная хостинговая инфраструктура cPanel, и нам не важно, где находится DNS, но если у клиента он у нас, это полностью их ответственность.

Причина, по которой мы настроили этот хостинг, заключается в том, что клиенты могут загружать свои собственные шаблоны для управления дисковым хранилищем (мы не заинтересованы в том, чтобы быть файловым сервером, но клиентам нужно немного места для файлов PDF, изображений и т. Д.)и убедиться, что контент одного клиента не смешивается с контентом другого.В качестве платной услуги премиум-класса наши юристы рекомендуют минимум отдельных идентифицируемых папок на сервере для хранения файлов.

Другим примером является blogger / blogspot, хорошо известно, что они используют mod_rewrite для своих поддоменов.Это уместно для них сделать так, иначе им придется как минимум создать отдельную DNS-зону для каждого блога, и это неудобно (поэтому мы и используем cPanel), плюс у вас есть все остальные настройки виртуального хостинга.,При использовании mod_rewrite, как вы уже знаете, для управления поддоменами будет использоваться одна подстановочная зона, а правило mod_rewrite легко применять.Оттуда это просто создание папки и перенаправление запросов на субдомен в нее или указание скрипту для управления вашим приложением в зависимости от того, что вы делаете.

Правда для автоматизированной системы, использующей суб-домены, я бы использовал mod_rewrite, но для чего-то более сложного, например, для полноценной премиальной CMS, требующей полного соответствия закону, управления квотами, приостановки, завершения и удаления файлов, тогда я бы порекомендовал рассмотреть панель управления хостингом, такую ​​как cPanel, как возможнуюрешение.

0 голосов
/ 13 июля 2011

У вас правильная идея. Вы сохраняете единственную кодовую базу, работающую (ради аргумента) на одном IP. Вам не нужно беспокоиться о виртуальных хостах или даже mod_rewrite (кроме того, что нужно вашему приложению).

Ваше веб-приложение просто обрабатывает все запросы к этому IP-адресу (на порт 80 или 443 или любой другой).

Когда ваше приложение загружается в ответ на запрос, оно запрашивает $ _SERVER ['HTTP_HOST'] и настраивает себя для клиента, связанного с этим доменным именем. Если не найдено, то это 404-е или что-то еще, что имеет смысл.

0 голосов
/ 13 июля 2011

Да, ваше решение будет лучшим способом.Так делают другие сайты.Переадресация всех запросов через центральный файл с использованием правил перезаписи влечет за собой небольшое снижение производительности, но оно того стоит.

На самом деле, в большинстве приложений вы уже платите этот штраф в любом случае.Любая структура, которая использует шаблон FrontController, уже делает именно это.Это включает в себя практически все фреймворки, такие как Zend, Symfony 1 и 2, CakePHP, CodeIgniter и многие другие.

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