1

我想在同一台机器上运行 rails 3 和 rails 2.3.8 应用程序。我目前为我的 rails 3 应用程序使用 Ruby 1.9.2 设置了乘客,并且在 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(即独立的乘客日志)根本没有显示任何活动!

因此,最初犯了一个巨大的错误并浪费了每个人的时间,我仍然在同一条船上,因为看起来代理没有发生!

有人有什么想法吗?

4

1 回答 1

0

(代表问题作者发布)

解决了!我已经启用了 proxy_module 但我还需要启用 proxy_http 模块。这终于解决了问题。呸!!

于 2017-10-30T00:30:10.190 回答