我正在尝试开始编写一些Ruby on Rails应用程序,并且使用Mongrel取得了成功,但是,我想将我的应用程序部署到Windows上的Apache 2.2实例? 我发现的所有教程都显得过时了,并且适用于旧版本的Apache / Rails。
有谁知道一个好的,当前教程configurationApache 2.2的Ruby on Rails应用程序?
编辑:至少直到有一个Phusion乘客赢,Apache + Mongrel是要走的路。 你可以在不使用Mongrel的情况下使用Apache + FastCGI,但是在实际负载下,你将会得到(更多)僵尸进程和(更多)内存泄漏。
您也可以像下面详细介绍的那样,使用Thin来代理Thin 。 不过,尽管速度要快一些,但我仍然对Thin On Win有一些不稳定的感觉。 AB(Apache Benchmark)是你的朋友在这里!
在Windows上配置Apache + Mongrel与* nix没有显着区别。
实质上,您需要代理到Apache到Mongrel的请求。 这可以归结为这样的事情:
Loadmodulee proxy_module modules/mod_proxy.so Loadmodulee 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>
坚持这个你的httpd.conf
(或httpd-vhost.conf
如果你包括它)。
假设你要在3000端口上运行mongrel,你的Rails根目录是C:\web\myapp
,你可以访问www.myapp.com上的应用程序。
在生产模式下运行rails应用程序:
mongrel_rails start -p 3000 -e production
而你走了(实际上mongrel默认是3000端口,所以你可以跳过-p 3000
如果你想的话)。
主要区别在于你不能在Windows上守护杂种(即使它在后台运行)。 相反,您可以使用mongrel_service
gem将其作为服务安装。
而且,运行一个集群更复杂,你将无法使用Capistrano。 让我知道如果你想要更多的信息。
我是RoR的新手,并且在Windows server 2008上一直在尝试相同的事情,下面是关于让mongrel作为一项服务的其他注意事项:
如果在安装mongrel_service时遇到编译错误:
gem install mongrel_service
尝试使用二进制代替指定您的平台:
gem install mongrel_service --platform x86-mswin32
此外,要实际安装服务,您需要在RoR的应用程序目录中运行此命令:
mongrel_rails service::install --name MyApp -e production -p 3001 -a 0.0.0.0
(或删除:
mongrel_rails service::remove --name MyApp
)
那么你应该能够在你的Windows服务控制面板中启动/停止应用程序“MyApp”。
希望能帮助别人。
目前Mongrel在Ruby 1.9下无法正常工作,执行命令mongrel_rails时会抛出“msvcrt-ruby18.dll not found”错误。
在这种情况下,瘦身似乎是目前唯一的选择。
我只是想把这篇文章添加到列表中。 它解释了如何使Apache服务于ruby文件,而无需安装任何其他应用程序。
你可能想尝试Bitnami RubyStack