我有一个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>
答案 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
本地提供。
希望这能让你朝着正确的方向前进。