Конфигурация Nginx для SaaS — есть ли достойный способ справиться с этим сценарием?

Я разрабатываю веб-приложение. Пользователи зарегистрируются, и им будет назначен поддомен, который позволит им получать доступ к контенту через account-456.myappsdomain.com. Однако намерение иметь этот поддомен не для того, чтобы они посещали его напрямую. Вместо этого им будет сообщено указать CNAME для www.their-own-site.com на account-456.myappsdomain.com, чтобы они могли посещать свой собственный домен и просматривать свой контент непосредственно в своем собственном домене. Возможно ли с помощью Nginx создать конфигурацию, которая позволит это сделать без необходимости редактировать конфигурацию или добавлять виртуальный хост каждый раз, когда пользователь регистрирует учетную запись?

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


person orokusaki    schedule 24.02.2012    source источник
comment
Надеюсь, полезно: en.wikipedia.org/wiki/   -  person sarnold    schedule 24.02.2012


Ответы (2)


Чтобы ответить на ваш вопрос, хорошо, сэр, конфигурация сайта для поддоменов с подстановочными знаками может быть выполнена в Nginx, а CNAME для www.example.com, указывающий на acct-123.yourappsdomain.com, приведет к тому, что посещения первого будут обрабатываться как последний. Вам решать прослушивать имя хоста www.example.com, искать в базе данных информацию об учетной записи для домена и загружать правильный контент. По сути, вы должны использовать ту же логику, что и для извлечения поддомена для домена CNAME.

person orokusaki    schedule 25.02.2012

Я сталкиваюсь с похожей ситуацией. Мой план состоит в том, чтобы сгенерировать блоки конфигурации nginx server из приложения (где я знаю, какой домен чей). Каждый раз, когда арендатор добавляется, удаляется или изменяется, конфигурация будет перегенерирована, а сервер перезагружен. Шаблонирование его чем-то вроде jinja может быть чище.

РЕДАКТИРОВАТЬ:

OR

Вы можете использовать карту, как предложено здесь, но я думаю, что это приведет к снижению производительности во время выполнения.

person pdvyas    schedule 07.10.2013