Php Apache反向代理能否排除某些文件类型?
我有一个Apache/Passenger组合服务于Rails 3.x,同一个组合服务于Rails 2.x,通过一个到Passenger Standalone的反向代理。我这样做的原因是Rails 2.x使用的Ruby版本比Apache/Passenger使用的Ruby版本旧 然而,Rails2.x应用程序中有一点php无法支持。(乘客讨论组赖洪丽确认)。洪丽建议从反向代理中排除“php”位 这可以做到吗?如果可以,如何做到Php Apache反向代理能否排除某些文件类型?,php,apache,reverse-proxy,Php,Apache,Reverse Proxy,我有一个Apache/Passenger组合服务于Rails 3.x,同一个组合服务于Rails 2.x,通过一个到Passenger Standalone的反向代理。我这样做的原因是Rails 2.x使用的Ruby版本比Apache/Passenger使用的Ruby版本旧 然而,Rails2.x应用程序中有一点php无法支持。(乘客讨论组赖洪丽确认)。洪丽建议从反向代理中排除“php”位 这可以做到吗?如果可以,如何做到 编辑以显示反向代理的设置方式: <VirtualHost *:8
编辑以显示反向代理的设置方式:
<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>
服务器名gtt
DocumentRoot/home/purvez/www/gtt/public
RailsEnv开发
乘客逃走了
ProxyPass/http://127.0.0.1:3000/
ProxyPassReverse/http://127.0.0.1:3000/
以及如何建立一个普通站点:
<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>
服务器名testapp
DocumentRoot/home/purvez/www/testapp/public
RailsEnv开发
您可以使用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
DocumentRoot/home/purvez/www/gtt/public
RailsEnv开发
乘客逃走了
ProxyPassMatch.*\.php$!
ProxyPass/http://127.0.0.1:3000/
ProxyPassReverse/http://127.0.0.1:3000/
请注意,这将导致名为gtt
的虚拟主机中的所有“php位”从/home/purvez/www/gtt/public
本地提供服务
希望这能让你朝着正确的方向前进。这就是我喜欢的答案!!非常感谢。就我所知,请你解释一下ProxyPassMatch之后的字符实际上是做什么的。我猜它们是正则表达式,但我不能完全确定。再次感谢。@nexar:他们可能比我解释得更好。