为在端口3000上运行的rails应用程序设置Apache反向代理

时间:2012-04-08 14:29:01

标签: ruby-on-rails apache passenger

我管理一个运行几个PHP / MySQL网站的小型VPS。它正在运行CentOS(虽然是略微修改的VSP版本x86)。一切都运作良好。 但是,现在我想在我的VPS上托管的某个域上运行Rails 3应用程序。问题是,应用程序需要cPanel尚不支持的Rails 3。 如果我ssh到服务器并在应用程序的文件夹中运行rails s它运行顺利,我可以在siegedog.com:3000访问它。但是,我想将所有请求重定向到siegedog.com到端口3000。

我已经读过这会假设设置一个反向代理,它会将为siegedog获取的所有请求重定向到Mongrel,后者应该在端口3000上运行。我已经检查了很多教程但是大多数令人困惑和/或过时了。

我也试过乘客。但是,cpanel不允许编辑我的httpd.conf。所以我使用了一个单独的文件,它包含在那里,并在远程文件中添加了额外的配置参数,只是为了得到Default server page问题,并且在apache错误日志中没有错误。

1 个答案:

答案 0 :(得分:0)

好吧,感谢John Douthat,我设法使用以下.htaccess文件轻松设置我的应用程序:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^siegedog\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.siegedog\.com$
RewriteRule ^(.*) "http\:\/\/127\.0\.0\.1\:3000\/$1" [P,L]

另外,要从ssh连接启动它,我打电话:

nohup rails s &

在rails应用程序的根目录中。 一切都很好!