如何在Windows中为Ruby on Rails配置Apache 2.2?

Owe*_*wen 10 ruby apache ruby-on-rails

我正在尝试开始编写一些Ruby on Rails应用程序并且已经成功使用了Mongrel但是,我想将我的应用程序部署到Windows上的Apache 2.2实例中?我发现的所有教程似乎都已过时,适用于旧版本的Apache/Rails.

有没有人知道为Ruby on Rails应用程序配置Apache 2.2的一个好的,当前的教程?

Dav*_*lan 13

编辑:至少在获得Phusion Passenger for Win之前,Apache + Mongrel是最佳选择.您可以在没有Mongrel的情况下使用Apache + FastCGI,但在实际负载下,您将获得(更多)僵尸进程和(更多)内存泄漏.

您也可以按照下面详述的相同方式查看Thin的代理.然而,我在Thin on Win上遇到了一些不稳定因素,尽管它的速度要快得多.AB(Apache Benchmark)是你的朋友!

在Windows上配置Apache + Mongrel与*nix没有太大区别.

基本上,您需要将进入Apache的请求代理到Mongrel.这归结为这样的事情:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost localhost:80>
    ServerName www.myapp.comm
    DocumentRoot "C:/web/myapp/public"
    ProxyPass / http://www.myapp.com:3000/
    ProxyPassReverse / http://www.myapp.com:3000/
    ProxyPreserveHost On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

坚持这个httpd.conf(或者httpd-vhost.conf如果你包括它).

它假设您将在端口3000上运行mongrel,您的Rails根目录C:\web\myapp,并且您将访问www.myapp.com上的应用程序.

要在生产模式下运行rails app:

mongrel_rails start -p 3000 -e production
Run Code Online (Sandbox Code Playgroud)

你离开了(实际上mongrel默认为3000端口,所以-p 3000如果你愿意,你可以跳过).

主要的区别是你不能在Windows上守护mongrel(即让它在后台运行).相反,您可以使用mongrel_servicegem 将其安装为服务.

此外,运行群集更复杂,您将无法使用Capistrano.如果您想了解更多信息,请告诉我.