LINUX.ORG.RU
ФорумAdmin

Зеркалирование веб-сервиса на несколько доменов

 , , , ,


0

1

Всем привет,

Имеется некий веб-сервис, который обычно работает на одном домене. Например, форум. Или вики. Или что-либо ещё. Логин обычно привязывается к кукам, которые тоже привязаны к домену. Необходимо сделать так, чтобы сервис стал доступен с нескольких разных доменов. Без редиректа.

Для пояснения:

example.com   ->  
example.onion ->  | same service |
another.net   ->  

Хостинг - VPS с Докером. Я рассматриваю следующую схему:

  1. Единственный контейнер с Nginx для обработки всех запросов
  2. N копий контейнера с кодом и настройками сервиса — по одной для каждого домена
  3. Единственная общая база данных (или другое хранилище)

Насколько жизнеспособен такой подход? Может быть есть известные проблемы? Как-нибудь это можно прооптимизировать — например, избежать копий контейнера с сервисом? Что-нибудь типа продвинутого конфига Nginx чтобы конвертировать URL и куки?

Заранее спасибо!

P.S. Для чего это нужно? Например, для обхода блокировок. Для предоставления того же сервиса через домен в зоне .onion. Подробнее о нашем проекте: https://deeptechgroup.net



Последнее исправление: deeptechgroup (всего исправлений: 1)

Защищаете от слежения и контроля, но не имеете понятия как работает веб?

  1. Схема неправильная. Для чего отдельные контейнеры под каждый домен?
  2. Пока пропустим конвертацию урлов, но что значит конвертировать куки?

По теме: достаточно одного nginx и одного контейнера (если не учитывать масштабирование) с сервисом.

Dmit3Y
()

Сделайте одну точку для логина.

Но вообще «Защита от слежения и контроля» и «логин, куки» у меня как-то совсем не вяжутся вместе.

micronekodesu ★★★
()

Просто указываете в nginx server_name несколько доменов через пробел. При смене домена пользователю придется логинится заново.

goingUp ★★★★★
()

P.S. Для чего это нужно? Например, для обхода блокировок.

Ага, только все ваши три домена по ip сервера и заблокируют.

Deleted
()
Ответ на: комментарий от micronekodesu

Сделайте одну точку для логина.

Речь идёт о предоставлении уже готовых сервисов, а не разработке своих. Например, стандартный форум на MyBB. Или Wiki на MediaWiki. И т.д.

Но вообще «Защита от слежения и контроля» и «логин, куки» у меня как-то совсем не вяжутся вместе.

Обычные сервисы типа форума или вики используют куки для хранения сессии. Без них можно обойтись только в случае полностью анонимных сервисов. Но это не всегда удобно, поддержка псевдонимов (и, соответственно, возможности зарегистрироваться и логироваться) нужна.

anonymous
()
Ответ на: комментарий от Deleted

Хорошее замечание. Тут решение видится в смене / покупке новых IP-адресов. При этом по-видимому не принципиально, где будет располагаться собственно хостинг - на отдельном хосте для каждого IP или же все эти IP будут привязаны к одному и тому же реальному хосту.

Да, домены .i2p и .onion в любом случае нельзя заблокировать, так что фича будет полезной даже без смены IP.

А какие ещё варианты обхода блокировки по IP могут быть?

anonymous
()
Ответ на: комментарий от anonymous

поддержка псевдонимов (и, соответственно, возможности зарегистрироваться и логироваться) нужна.

anonymous (26.06.2018 17:39:53)

Яснопонятно

Речь идёт о предоставлении уже готовых сервисов, а не разработке своих. Например, стандартный форум на MyBB. Или Wiki на MediaWiki. И т.д.

Тогда у меня нет идей. Можно какое-то извращение с iframe попробовать, но я не представляю кто бы этим стал пользоваться.

micronekodesu ★★★
()
Ответ на: комментарий от Dmit3Y

Защищаете от слежения и контроля, но не имеете понятия как работает веб?

Экспертов не хватает. Любители все в основном. Или специалисты в какой-то другой области.

Схема неправильная. Для чего отдельные контейнеры под каждый домен? Пока пропустим конвертацию урлов, но что значит конвертировать куки?

Суть в следующем. Обычно у веб-сервиса типа форума, вики или блога есть такое поле - BaseURL. Оно потом используется для генерации ссылок и прочего... То же и с куками - есть поле, задающее cookie domain. Для разных доменов должно быть разное значение. В итоге, если рассматривать сервис как чёрный ящик, то можно для каждого домена запустить по инстансу со своими конфигами.

По теме: достаточно одного nginx и одного контейнера (если не учитывать масштабирование) с сервисом.

Тоже так думаю. Но как решить вопросы с URL и куками? И, возможно, чем-то ещё, что пока не всплыло.

anonymous
()
Ответ на: комментарий от goingUp

Не работает так, к сожалению. CSS, например, не подгружаются - потому что по какому-то фиксированному BaseURL прописаны. Куки тоже... В теории, наверно, можно сделать сервис, который всегда использует относительные URL, и для кук принимает любой домен. Но мы говорим о реальных, уже сделанных сервисах, которые в большинстве рассчитаны на фиксированный домен.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.