Обработка доменов верхнего уровня в мультитенантных веб-приложениях - PullRequest
2 голосов
/ 22 апреля 2011

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

Вот суть того, чего я пытаюсь достичь:

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

Мне трудно понять, как такие сайты, как Wordpress.com и Typepad, справляются с многопользовательским режимом на уровне приложений.

Так, скажем, поступает запрос на www.test.com/, он достигает моего мультитенантного приложения, но как мне обслуживать правильный сайт? вытащить заголовки из запроса и обслуживать сайт, основанный на этом.

Например, если вы используете Apache в качестве веб-сервера для своего приложения, вы не сможете добавлять конфигурацию виртуального хоста в apache каждый раз, когда человек регистрируется для приложения с настраиваемым доменом. Таким образом, они должны обрабатывать это программно, но я не могу найти какие-либо ясные ресурсы о том, как обрабатывать многопользовательские домены верхнего уровня на уровне приложений.

1 Ответ

0 голосов
/ 17 апреля 2012

Общая идея не так уж и сложна. Когда запрос попадает в ваше приложение, вы должны проанализировать URL и получить некоторый tenantID из этого. Подобный вопрос в asp.net mvc 3 был задан на вопрос . Вы найдете мой ответ с решением в нашем приложении. На таких сайтах, как wp или аналогичных, я считаю, что прокси-сервер добавляет некоторые данные заголовка http для запроса, так что прикладной уровень уже получает tenantID.

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