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

时间:2011-10-24 10:29:44

标签: 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>

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

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

1 个答案:

答案 0 :(得分: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>

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

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