Можно ли иметь несколько сайтов с разными доменными именами в одном приложении Rails? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть несколько разных небольших веб-сайтов, и для каждого из них у меня есть план хостинга на уровне хобби, который обеспечивает гораздо большую пропускную способность / объем памяти, чем любой из них по отдельности.Кроме того, каждый раз, когда я вносю изменения в стек, который я использую, например, когда я начинаю использовать более новую версию гема, мне приходится обновлять каждую из них отдельно, и я должен запускать отдельные тесты для каждого из них.Есть также идентичные таблицы, которые есть у каждой, например, Admin и Error.

Так что я начал думать о том, можно ли объединить их в одно приложение, возможно, с отдельными папками Controller, которыеобрабатываются как корень различными доменными именами.У кого-нибудь есть опыт хостинга разных сайтов из одной и той же кодовой базы?Это вообще возможно?

Обновление: Чтобы добавить больше контекста, я хочу разместить все это на одном сервере, возможно, с одной базой данных, но с несколькими папками контроллера, каждая из которых представляет собойдругой сайт и другой домен.Например, в настоящее время у меня есть smalllapp.com и lilsite.com, и я плачу за один и тот же план хостинга для обоих (который превышает обе их потребности), и у них обоих одинаковая модель Error, и яобновлять оба, когда я начинаю использовать новую версию Gem.Они также используют те же драгоценные камни и библиотеки.В идеале у меня должно быть приложение под названием superapp, размещенное только с одним экземпляром одного и того же плана хостинга с общим сертификатом SSL, которое будет иметь две папки контроллера с именами smallapp и lilsite.Маршрут "www.smallapp.com" будет как-то указывать на путь /smallapp/home.html и наоборот.Пользователи как на smalllapp.com, так и на lilsite.com могут создавать ошибки в одной и той же базе данных, но они никогда не смогут просматривать файлы на контроллере другого.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Не зная полного контекста, да, сложно найти лучшее решение, но оно возможно.

Да @ bo-oz правильно, вы можете использовать для этого Apartment gem.В настоящее время мы используем это там, где я работаю.

Вы также можете иметь 2 сервера, которые развертываются с одной и той же базы данных репо / кода.

В частности, у вас может быть 2 сервера Heroku, которые развернуты в одном репозитории github.Тогда есть 2 отдельных домена.При развертывании вы просто развернете оба сервера из своей главной ветви.

0 голосов
/ 24 июня 2019

Это возможно.

  1. Все домены должны указывать на один и тот же IP-адрес, который является адресом вашего сервера.Для этого вам нужно изменить настройки DNS для доменов.

  2. Веб-сервер (например, Nginx) должен перенаправить все запросы (со всех доменов) в одно и то же приложение Rails.

  3. В приложении Rails маршруты должны указывать на разные контроллеры в зависимости от домена.request.domain доступно в файле 'rout.rb'.См. Этот вопрос для получения дополнительной информации Маршрутизация Rails для обработки нескольких доменов в одном приложении

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

...