Мы развернули приложение Rails на внутреннем сервере, обслуживаемом через Passenger. Это приложение обслуживается через порт 9000 и настроено для использования sub_uri
. Первоначально URL-адрес http://ip.address:9000/
, а теперь его подают в http://ip.address:9000/app1
. Все файлы CSS, javascript, изображений загружаются, и в приложении нет ошибок.
Теперь нам нужно интегрировать это приложение в нашу производственную среду. Вышеупомянутый внутренний сервер не будет доступен напрямую; все приложения должны быть прокси-серверами через Apache на сервере переднего плана. С помощью ReverseProxy
и Proxy
, это приложение Rails должно быть доступно через http: //domain.name/app1.
Текущая конфигурация apache, которую мы используем для приложений PHP, внутренние приложения:
ProxyPassReverse /app1 http ://ip.address:9000/app1
ProxyPass /app1 http ://ip.address:9000/app1 retry=5
Приложение вроде загрузилось, но есть 2 проблемы:
Я не знаю, как лучше всего настроить эту установку. Работать над интерфейсом или выполнять дополнительную настройку на сервере? Следует ли мне удалить sub_uri и выполнить все настройки на внешнем сервере? Я сейчас использую RailsBaseURI
на сервере Rails. После прочтения этого сайта есть другие варианты, такие как PassengerEnabled
, PassengerAppRoot
.
Что я должен делать? Я новичок в Ruby, Rails и Passenger, и я очень благодарен за любую помощь.
Вам необходимо добавить следующее в свой config/production.rb
файл, предполагая, что это имеет отношение к вашей производственной среде.
config.action_controller.relative_url_root = '/app1'
Это взято из Билет на рельсы №1946.