Apache Reverse Proxy可以排除某些文件类型吗?

nex*_*xar 3 php apache reverse-proxy

我有一个Apache/Passenger组合服务Rails 3.x和相同的组合服务Rails 2.x通过反向代理服务于Passenger Standalone.我这样做的原因是因为Rails 2.x使用旧版本的Ruby而不是Apache/Passenger使用的Ruby.

但是,Rails 2.x应用程序中有一些PHP,Passenger Standalone无法支持.(由Hongli Lai在乘客讨论小组确认).Hongli建议从反向代理中排除'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>
Run Code Online (Sandbox Code Playgroud)

另外,如何设置普通网站:

<VirtualHost *:80>
   ServerName testapp
   DocumentRoot /home/purvez/www/testapp/public
   RailsEnv development
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

e.d*_*dan 7

你可以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>
Run Code Online (Sandbox Code Playgroud)

请注意,这将导致命名的虚拟主机中的所有"php位" gtt从本地提供/home/purvez/www/gtt/public.

希望这能让你朝着正确的方向前进.