Развертывание приложения Rails 3.1 в подкаталог в Apache БЕЗ пассажира

#windows #ruby-on-rails-3 #apache

#Windows #ruby-on-rails-3 #apache

Вопрос:

Хорошо, я боролся с этим весь день, поэтому я полагаю, что пришло время задать свой вопрос массам пользователей Rails и посмотреть, может ли кто-нибудь помочь. 🙂

Я ограничен использованием окна Windows в качестве сервера, и у меня запущен XAMPP, обслуживающий статический сайт из htdocs. Я также запускаю пару экземпляров Thin server с портов 5000 и 5001 для обслуживания двух приложений Rails. Я пытаюсь настроить обратный прокси-сервер через Apache, чтобы пользователи могли перейти к http://mydomain.com/app1 или http://mydomain.com/app2 . Вот мой файл proxy.conf:

 <Proxy *>
  Order deny,allow
  Allow from All
</Proxy>

ProxyVia On
ProxyPass /app1 http://localhost:5000/app1
ProxyPassReverse /app1 http://localhost:5000/app1
ProxyPass /app2 http://localhost:5001/app2
ProxyPassReverse /app2 http://localhost:5001/app2

ProxyPreserveHost On
  

Приложения, похоже, работают нормально в отношении необработанного содержимого; однако, несмотря на установку ENV[‘RAILS_RELATIVE_URL_ROOT’] на ‘/ app1’ в файле среды для app1 и на ‘app2’ в файле среды для app2, теги javascript, stylesheet и image не добавляют ‘/app1’ или ‘ / app2’ к атрибутам HREF и SRC их вкладок, что приводит к отсутствию стилей, сценариев или изображений. Я просмотрел интернет и перепробовал все, что смог найти, но, похоже, ничего не работает. У меня такое чувство, что я упускаю что-то действительно основное, и я просто надеюсь, что кто-нибудь сможет помочь. 🙂

Ответ №1:

Попробуйте это…

 <Proxy *>
  Order allow,deny
  Allow from All
</Proxy>

ProxyPreserveHost On

<Location /app1>
  ProxyPass http://localhost:5000/app1
  ProxyPassReverse http://localhost:5000/app1
</Location>
<Location /app2>
  ProxyPass http://localhost:5001/app2
  ProxyPassReverse http://localhost:5001/app2
</Location>
  

Комментарии:

1. Спасибо, попробовал это, и это не сработало. Я думаю, что проблема связана не столько с Apache, сколько с путями ресурсов в Rails. Это похоже на то, что, хотя приложение обслуживается с localhost: 5001 / app1 , общая папка по-прежнему обслуживается с localhost: 5001