170 похожих чатов

Всем привет, подскажите как делать такую штуку в автоматическом режиме:

у юзера есть некая страница типа интернет-магазина, и нужно сделать опцию чтобы он мог сам в настройках прикрутить свой домен к ней, т.е. чтобы при открытии "myusersite.com" открывалась страница "mysite.com/shop/72194", где 72194 - айди юзера например. При этом чтобы не происходил редирект, а именно домен оставался тот же.

Сейчас сделали такое для некоторых клиентов вручную, они в настройках DNS записей ставят наш сервер, а мы в nginx добавляем еще один виртуальный сайт. Но хотелось бы это сделать в автоматическом режиме, чтобы тупо юзер изменил DNS записи своего домена, на нашем сайте указал его домен, нажал "Подключить" и готово. Неужели это делаеться путем написания скрипта который изменяет конфиг nginx?

22 ответов

31 просмотр

проксей, наверное, лучше всего такое реализовать взять ноду/го и проксировать

а нужно для этого отдельный сервак брать с другим айпи или можно это все дело провернуть на одном айпи, там же где и висит продакшн?

по хостнейму определять домен на сервере и отдавать нужный? с ssl ток проблема будет

ssl можна по идеи через lets encrypt брать, правда тоже надо как-то скриптом его автоматизировать

отдельный лучше у тебя отдельный процесс будет терминировать все подключения

и он типа будет проксить на прод сервер запросы?

там дело в том чтобы он был динамическим) возможно это и nginx может, но придётся скриптик для генерации пописать

а в чём проблема возникла просто на ноде проверять хост запроса?

так как то не нравиться мне это на ноду сваливать у меня нода чисто апишку представляет, статику раздает nginx разве что имееться ввиду написать отдельную проксю на ноде

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

а нода норм здесь в качестве прокси потягается с тем же nginx?

докер и как запускать такие контейнеры - это задача не из разработки, а из девопса и кодогенерации (UPD: скорее конфига генерации). Отдавать статитку нодой такое себе, да даже на голанге, такое себе. Самый простой способ, написать скрипт для сервера, который будет генерировать новый конфиг для nginx и получать на домен ssl, создаст папку и подтянет их хранилища нужный код. Минус, это костыль. Плюс, делается быстро и относительно без проблемно. Вариант цивильнее, делать это через генерацию конфига для докера и поднятие всего этого дела в докере, минусы сложно и остаются костыли. Вариант три, правильный. Отдельные физические сервера или облако, много работы девопса и разворачивание из нужного образа системы, докера и т.д., с уже сгенерированным заранее кодом. Самый простой это автоматически через хуки генерить конфиг для nginx.

спасибо, проблема что девопса нету пока что, и приложение вне докера щас работает, ради одной этой фичи не хочеться все переделывать

только не понял насчет 3 варианта, зачем пилить отдельные машины?

тогда просто написать скрипт, который будет менять конфиг докера, и всё, стартовать его их ноды. Так как правильно такие вещи делаются через ансибл или кубернейтсы всякие. Там весь смысл, что чуваку поднимают порезаную до нельзя виртуалку, в которую суют его сайт и т.д. Ровно как хостеры всяких пхп делают. Присобачивают домен к своему серверу и днс, а дальше дело техники, по щаблону развернуть образ, и даже стартовать сгенерированый например сайт или магазин.

затем что ты не сможешь поднять вируталку, в другой вируталке? с ограничением ресурсов или я чего-то не знаю?

разве это практика такая? это же дорого будет обходиться для компании, не? суть же что это saas сервис, там вот эти страницы магаизнов почти везде одинаковые, отличается только контент который и так фронт грузит по апи, это не отдельные инстансы каких-то образов или еще чего то

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

для

да, можете просто посмотреть код опенсурсного аналога isp manager и т.д. как это реализована у них, если найдете. В вашем случае суть одна, сбилдить готовый конфиг подставив в него нужные значения, и рестартнуть nginx. Правда неплохо было бы написать линтнер проверяющий на ошибки, но и только.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта