Обработка доменов верхнего уровня в мультитенантных веб-приложениях

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

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

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

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

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

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

1 ответ

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

Другие вопросы по тегам