我想在同一台机器上运行rails 3和rails 2.3.8应用程序。我目前在我的rails 3应用程序中使用Ruby 1.9.2进行Passenger设置,并且可以正常使用Apache。我在Phusion网站上找到了以下内容,我正在尝试反向代理:
http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/
此应用的我的Apache vhost文件如下所示:
<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>
我可以使用乘客独立访问应用程序:
127.0.0.1:3000/start
但是当我尝试以下列方式访问它时:
http://gtt/start
我收到一条消息说:
没有路线匹配[GET]“/ start”
Apache'other_vhosts_access.log'会显示此条目:
testapp:80 127.0.0.1 - - [20/Oct/2011:15:27:58 +0100] "GET /start HTTP/1.1" 404 737 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
你可以看到它试图调用testapp:80而不是gtt:80。我在/ etc / hosts文件中都有这两个,实际上gtt是在testapp之前!
我在这里做错了什么以及如何正确处理?
我很尴尬!我没有在Ubuntu上启用该站点,因此它正在查看唯一可用的站点,即testapp。
但是,如果纠正了问题,我仍然会收到500错误。 'other_vhosts_access.log'条目显示:
gtt:80 127.0.0.1 - - [20/Oct/2011:18:07:30 +0100] "GET /start HTTP/1.1" 500 599 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
这几乎就像没有发生Passenger Standalone的代理,并且Apache正试图自己启动。当然,passenger.3000.log(即独立的乘客日志)根本没有显示任何活动!
所以我做了一个巨大的错误并浪费了每个人的时间,最初我仍然在同一条船上,看起来代理人没有发生!!
有人有任何想法吗?
答案 0 :(得分:0)
(代表作者提问)。
解决!我启用了proxy_module,但我还需要启用proxy_http模块。这终于解决了这个问题。呼!!