Может ли обратный прокси-сервер Apache исключать определенные типы файлов? - PullRequest
3 голосов
/ 24 октября 2011

У меня есть комбо Apache / Passenger, обслуживающее Rails 3.x, и такое же комбо, обслуживающее Rails 2.x через обратный прокси-сервер к Passenger Standalone. Я делаю это потому, что Rails 2.x использует более старую версию Ruby, чем Ruby, используемый Apache / Passenger.

Однако в приложении Rails 2.x есть немного php, которое не может поддерживать автономная версия для пассажиров. (Подтверждено Хонгли Лаем в Группе обсуждения пассажиров). Хонгли предлагает исключить биты php из обратного прокси.

Можно ли это сделать, и если да, то как?


Изменить, чтобы показать, как был настроен обратный прокси:

<VirtualHost *:80>
   ServerName gtt
   DocumentRoot /home/purvez/www/gtt/public
   RailsEnv development
   PassengerEnabled off
   ProxyPass / http://127.0.0.1:3000/
   ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>

Также, как был создан обычный сайт:

<VirtualHost *:80>
   ServerName testapp
   DocumentRoot /home/purvez/www/testapp/public
   RailsEnv development
</VirtualHost>

1 Ответ

7 голосов
/ 25 октября 2011

Вы можете использовать ProxyPassMatch для исключения следующим образом:

<VirtualHost *:80>
   ServerName gtt
   DocumentRoot /home/purvez/www/gtt/public
   RailsEnv development
   PassengerEnabled off
   ProxyPassMatch .*\.php$ !
   ProxyPass / http://127.0.0.1:3000/
   ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>

Обратите внимание, что это приведет к тому, что все «биты php» в виртуальном хосте с именем gtt будут обслуживаться локально с /home/purvez/www/gtt/public.

Надеюсь, это заставит вас двигаться в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...