Nginx conf для SaaS - есть ли достойный способ справиться с этим сценарием? - PullRequest
1 голос
/ 24 февраля 2012

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

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

Ответы [ 2 ]

0 голосов
/ 07 октября 2013

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

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

ИЛИ

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

0 голосов
/ 25 февраля 2012

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

...