у юзера есть некая страница типа интернет-магазина, и нужно сделать опцию чтобы он мог сам в настройках прикрутить свой домен к ней, т.е. чтобы при открытии "myusersite.com" открывалась страница "mysite.com/shop/72194", где 72194 - айди юзера например. При этом чтобы не происходил редирект, а именно домен оставался тот же.
Сейчас сделали такое для некоторых клиентов вручную, они в настройках DNS записей ставят наш сервер, а мы в nginx добавляем еще один виртуальный сайт. Но хотелось бы это сделать в автоматическом режиме, чтобы тупо юзер изменил DNS записи своего домена, на нашем сайте указал его домен, нажал "Подключить" и готово. Неужели это делаеться путем написания скрипта который изменяет конфиг nginx?
проксей, наверное, лучше всего такое реализовать взять ноду/го и проксировать
а нужно для этого отдельный сервак брать с другим айпи или можно это все дело провернуть на одном айпи, там же где и висит продакшн?
по хостнейму определять домен на сервере и отдавать нужный? с ssl ток проблема будет
ssl можна по идеи через lets encrypt брать, правда тоже надо как-то скриптом его автоматизировать
отдельный лучше у тебя отдельный процесс будет терминировать все подключения
и он типа будет проксить на прод сервер запросы?
там дело в том чтобы он был динамическим) возможно это и nginx может, но придётся скриптик для генерации пописать
а в чём проблема возникла просто на ноде проверять хост запроса?
так как то не нравиться мне это на ноду сваливать у меня нода чисто апишку представляет, статику раздает nginx разве что имееться ввиду написать отдельную проксю на ноде
да по сути можно и отдельную, единственное что задержка вырастит из-за прокси.
а нода норм здесь в качестве прокси потягается с тем же nginx?
докер и как запускать такие контейнеры - это задача не из разработки, а из девопса и кодогенерации (UPD: скорее конфига генерации). Отдавать статитку нодой такое себе, да даже на голанге, такое себе. Самый простой способ, написать скрипт для сервера, который будет генерировать новый конфиг для nginx и получать на домен ssl, создаст папку и подтянет их хранилища нужный код. Минус, это костыль. Плюс, делается быстро и относительно без проблемно. Вариант цивильнее, делать это через генерацию конфига для докера и поднятие всего этого дела в докере, минусы сложно и остаются костыли. Вариант три, правильный. Отдельные физические сервера или облако, много работы девопса и разворачивание из нужного образа системы, докера и т.д., с уже сгенерированным заранее кодом. Самый простой это автоматически через хуки генерить конфиг для nginx.
спасибо, проблема что девопса нету пока что, и приложение вне докера щас работает, ради одной этой фичи не хочеться все переделывать
только не понял насчет 3 варианта, зачем пилить отдельные машины?
тогда просто написать скрипт, который будет менять конфиг докера, и всё, стартовать его их ноды. Так как правильно такие вещи делаются через ансибл или кубернейтсы всякие. Там весь смысл, что чуваку поднимают порезаную до нельзя виртуалку, в которую суют его сайт и т.д. Ровно как хостеры всяких пхп делают. Присобачивают домен к своему серверу и днс, а дальше дело техники, по щаблону развернуть образ, и даже стартовать сгенерированый например сайт или магазин.
затем что ты не сможешь поднять вируталку, в другой вируталке? с ограничением ресурсов или я чего-то не знаю?
разве это практика такая? это же дорого будет обходиться для компании, не? суть же что это saas сервис, там вот эти страницы магаизнов почти везде одинаковые, отличается только контент который и так фронт грузит по апи, это не отдельные инстансы каких-то образов или еще чего то
если вам нужно только отдавать статику, и ту не всю, и только присобачить домен к апи, то ваш путь написать для nginx модуль или просто генератор конфига и все, который все домены указанные для него будет слать туда куда нужно. это делается обычным bash скиптом.
lkz ?))
для
да, можете просто посмотреть код опенсурсного аналога isp manager и т.д. как это реализована у них, если найдете. В вашем случае суть одна, сбилдить готовый конфиг подставив в него нужные значения, и рестартнуть nginx. Правда неплохо было бы написать линтнер проверяющий на ошибки, но и только.
понял спасибо
Обсуждают сегодня