`
robbin
  • 浏览: 4825922 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:137462
社区版块
存档分类
最新评论

在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails

    博客分类:
  • Ruby
阅读更多
Windows平台使用Apache2.2Mongrel运行Ruby on Rails
 
 
一、安装Ruby、rails、mongrel和Apache2.2
 
从rubyforge网站下载One-Click Ruby Install,运行安装程序,就安装好了ruby和rubygems。
 
运行命令:
gem install rails –y
gem install mongrel –y
gem install mongrel_service -y
安装好了rails和mongrel
 
从Apache网站下载Windows版本的Apache2.2,运行安装程序,就安装好了Apache2.2。
 
二、把Mongrel作为Services启动
 
mongrel_rails service::install -N depot -c d:\Rubyproject\depot -p 3000 –e production
-N指明服务名称,-d指明rails应用的目录,-p是mongrel监听的tcp端口,-e是启动模式为生产模式
 
这样打开控制面版|管理工具|服务,就可以发现增加了一项名为“depot”的服务,就可以通过控制面版来管理服务了。如果需要命令行启动和关闭该服务,那么:
mongrel_rails service::start -N depot
mongrel_rails service::stop -N depot
 
如果需要从服务中注销该项服务,那么:
mongrel_rails service::remove -N depot
 
如果需要安装多个mongrel实例,那么可以这样:
mongrel_rails service::install -N depot0 -c d:\Rubyproject\depot -p 3000 –e production
mongrel_rails service::install -N depot1 -c d:\Rubyproject\depot -p 3001 –e production
诸如此类。
 
三、配置Apache2.2
 
用编辑工具打开Apache2.2目录下面的conf/httpd.conf,需要取消如下模块的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
如果你希望对页面输出使用压缩,也需要取消如下模块的注释:
LoadModule deflate_module modules/mod_deflate.so
 
然后按如下内容配置基于HTTP代理的负载均衡:
xml 代码
 
  1. ProxyRequests Off   
  2. <Proxy balancer://myCluster>  
  3.   BalancerMember http://localhost:3000   
  4.   BalancerMember http://localhost:3001   
  5. </Proxy>  
  6.   
  7. <VirtualHost *:80>  
  8.   ServerName www.xxx.com   
  9.   DocumentRoot d:/rubyproject/depot/public   
  10.   ProxyPass /images !   
  11.   ProxyPass /stylesheets !   
  12.   ProxyPass /javascripts !   
  13.   ProxyPass / balancer://myCluster/   
  14.   ProxyPassReverse / balancer://myCluster/   
  15.   ProxyPreserveHost on   
  16. </VirtualHost>  
 
myCluster定义了群集中的每个mongrel应用服务器节点。ProxyPass /images !指明该URL开始的请求不代理给Mongrel群集,而由Apache自己处理。重起Apache,然后打开浏览器访问www.xxx.com,检查配置是否正确。
 
至此,在Windows Server上面一个具备良好稳定性和性能的Ruby on rails生产环境就搭建好了。
 
对于页面输出,还可以使用mod_deflate进行输出内容压缩,以提高页面下载速度,这个就留给大家自己配置了。
分享到:
评论
32 楼 tangren0009 2007-07-03  
  谢谢! 让我入门
31 楼 karl 2007-06-01  
我的ruby是1.8.4.在注册服务的时候总是抛出一个错误,说找不到w32/service:
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require__': no
such file to load -- win32/service (LoadError)
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `re
quire'
        from c:/ruby/lib/ruby/gems/1.8/gems/mongrel_service-0.1/lib/mongrel_serv
ice/init.rb:5
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `re
quire'
        from c:/ruby/lib/ruby/gems/1.8/gems/gem_plugin-0.2.2/lib/gem_plugin.rb:1
34:in `load'
        from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:95:in `each
'
        from c:/ruby/lib/ruby/gems/1.8/gems/gem_plugin-0.2.2/lib/gem_plugin.rb:1
12:in `load'
        from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:240
        from c:/ruby/bin/mongrel_rails:18
-----------------------------------
???????搞不清楚,我在机器上搜service,确实没有找到win32/service.是不是跟我的ruby版本有关,还是没有装某个gem?
30 楼 huangye177 2007-05-08  
To: simon_lin这是你的链接到rails有问题,估计是网络不好
29 楼 prolibertine 2007-05-08  
不知道可不可以在iis下面配置ror啊
28 楼 simon_lin 2007-04-03  
为什么我装到
gem install rails –y
这一步时,总是提示我

ERROR:While executing gem ... (Gem::RemoteFetcher:FetchError)
SocketError reading http://gems.rubyforge.org/gems/activesupport-1.4.2.gem


这是什么问题?怎么处理?谢谢!
27 楼 simon_lin 2007-04-03  
为什么我装到
gem install rails –y
这一步时,总是提示我

ERROR:While executing gem ... (Gem::RemoteFetcher:FetchError)
SocketError reading http://gems.rubyforge.org/gems/activesupport-1.4.2.gem


这是什么问题?怎么处理?谢谢!
26 楼 hongyefei 2007-03-07  
真的可以啊,楼上的谢谢
25 楼 huangye177 2007-02-20  
somebody 写道
hongyefei 写道
我把
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
里面的js、css,images目录去掉。 改成下面这样就可以了,
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
谁知道哪样好些吗



我用ajp_mod也碰到这个问题。不知道为啥。ProxyPass /images !  这个好像让/images下的禁止访问了。而不是给ajp处理了。奇怪。


It should be:

<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass /images balancer://myCluster/images
ProxyPass /stylesheets balancer://myCluster/stylesheets
ProxyPass /javascripts balancer://myCluster/javascripts

ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>

For more information: http://www.yehuang.net/archives/31
24 楼 lionel 2007-02-14  
Quake3 写道
当我配置好服务后,在IE地址栏输入地址正确显示出Welcome aboard,但是点击“About your application’s environment”后,出现错误提示
Routing Error

no route found to match "/rails/info/properties" with {:method=>:get}

请教大家,如何解决这个问题!


我也遇到了和你一样的问题,不知是什么原因
23 楼 amozon 2007-02-13  
melin 的资料很详细,谢谢
22 楼 Quake3 2007-02-04  
当我配置好服务后,在IE地址栏输入地址正确显示出Welcome aboard,但是点击“About your application’s environment”后,出现错误提示
Routing Error

no route found to match "/rails/info/properties" with {:method=>:get}

请教大家,如何解决这个问题!
21 楼 robbin 2007-02-03  
还是好好去读apache的文档吧,别在这瞎猜
20 楼 somebody 2007-02-02  
hongyefei 写道
我把
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
里面的js、css,images目录去掉。 改成下面这样就可以了,
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
谁知道哪样好些吗



我用ajp_mod也碰到这个问题。不知道为啥。ProxyPass /images !  这个好像让/images下的禁止访问了。而不是给ajp处理了。奇怪。
19 楼 hongyefei 2007-01-26  
我把
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass /images !
ProxyPass /stylesheets !
ProxyPass /javascripts !
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
里面的js、css,images目录去掉。 改成下面这样就可以了,
<VirtualHost *:80>
ServerName dev100
DocumentRoot d:/app/onlinesale/public
ProxyPass / balancer://myCluster/
ProxyPassReverse / balancer://myCluster/
ProxyPreserveHost on
</VirtualHost>
谁知道哪样好些吗

18 楼 hongyefei 2007-01-26  
怎么我用http://localhost:3001/home就可以,用http://dev100/home登录,所有的js&css都不起作用。
<Proxy balancer://myCluster>     
  BalancerMember http://localhost:3001      
</Proxy>

<VirtualHost *:80>     
  ServerName dev100
  DocumentRoot d:/app/onlinesale/public      
  ProxyPass /images !      
  ProxyPass /stylesheets !      
  ProxyPass /javascripts !      
  ProxyPass / balancer://myCluster/      
  ProxyPassReverse / balancer://myCluster/      
  ProxyPreserveHost on      
</VirtualHost>
17 楼 zyjarge 2007-01-26  
搭好了. 能用了, 可是有点问题,原先在Webrick下跑的好好的程序中文出现乱码了.

还得再研究研究啊.
16 楼 bomb_football 2007-01-24  
已经解决了,需要需要rails命令创建一个Rails application目录后,才能创建服务。
btw:你这安装步骤是写给高手看的吧:)
15 楼 bomb_football 2007-01-24  
呵呵,麻烦你能说清楚一点吗?这个Rails application改怎么指定?
14 楼 robbin 2007-01-23  
!!! The path you specified isn't a valid Rails application.
13 楼 bomb_football 2007-01-23  
我安装的时候报错了,请问怎么回事?
执行:mongrel_rails service::install -N depot -c D:\ruby\lib\ruby\gems\1.8\gems\rails-1.2.1\html -p 3000 –e production


!!! The path you specified isn't a valid Rails application.
service::install reported an error. Use mongrel_rails service::install -h to get
help.

相关推荐

    Ruby on Rails安装指南(Ruby 1.8.6+Rails 2.0.2)

    在掌握了Ruby、Rails和Mongrel等关键组件的安装方法之后,你就能够开始探索Ruby on Rails的无限可能,开发出响应迅速、维护方便的Web应用程序。随着实践经验的积累,相信你能够更加熟练地运用Ruby on Rails来实现...

    Ruby on Rails安装指南.docx

    《Ruby on Rails安装指南》是一份详尽的文档,旨在帮助用户在不同的环境下安装和配置Ruby on Rails开发环境。这份指南适用于使用Ruby 1.8.6和Rails 2.0.2版本的用户,虽然这些版本可能相对较旧,但其安装流程对于...

    ubuntu下安装ruby on rails

    ### Ubuntu 下 Ruby on Rails 的安装与配置 #### 一、Ruby on Rails 的安装步骤 **1.1 系统环境准备** 确保您的 Ubuntu 系统已更新至最新状态。这一步很重要,因为新版本通常会修复旧版本中存在的问题,包括安全...

    Ruby on Rails为企业SOA做好准备了吗

    总而言之,Ruby on Rails在构建RESTful SOA服务时表现出色,其动态特性和强大的社区支持使其能够应对企业级需求。尽管存在部署和扩展的挑战,但随着最佳实践和工具的不断发展,RoR正逐渐为企业SOA做好准备。通过学习...

    Rails 中mongrel的安装

    Rails是Ruby on Rails框架的简称,它是一种基于Ruby语言的开源Web开发框架,以其MVC(Model-View-Controller)架构而闻名,旨在简化Web应用的开发过程。在早期的Rails版本中,Mongrel是一个常用的HTTP服务器,用于...

    ruby_on_rails&radrails环境配置.pdf

    Ruby on Rails(简称Rails或RoR)是一种使用Ruby语言编写的开源全栈Web应用框架。它遵循模型-视图-控制器(MVC)架构模式,强调代码优雅性和开发效率,通过约定优于配置的理念简化了开发流程。 #### 二、安装Ruby ...

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    在Rails环境里,Monit确保了Nginx、Mongrel和MySQL等关键服务的健康运行。 在部署这个环境时,首先需要在Ubuntu上安装必要的软件包,包括Ruby、Rails、Nginx、MySQL以及Monit。然后,配置Nginx作为反向代理来分发...

    RailsWithApacheAndMongrel.pdf

    本文档主要介绍了如何在Windows环境下配置Apache作为静态内容服务器,并利用Mongrel来部署多个Rails应用程序。这种配置允许开发者在一个服务器上运行多个独立的Rails应用,并通过Apache进行请求代理。 #### 安装与...

    Rails相关电子书汇总二

    这本书可能会涵盖如何使用Mongrel来服务、部署和扩展Ruby应用程序的细节,包括配置、性能优化、集群设置以及与其他组件(如Nginx或Apache)集成的方法。 Mongrel虽然已经不再是最新的Rails服务器选择,但它在Rails...

    the rails way

    Mongrel不仅能够运行Ruby应用,还提供了调试和扩展的功能,是Rails开发者必备的知识点之一。 #### Rails Plugins: Extending Rails Beyond the Core Rails插件允许开发者扩展Rails的功能,通过添加自定义模块或...

    ruby186-26

    一旦完成这些步骤,你就可以在 Windows XP 上编写和运行 Ruby on Rails 应用了。记得随时更新你的 Gem 文件,以保持依赖项的最新状态,并确保兼容性。此外,了解 Ruby 的其他工具,如 Bundler 和 RSpec,可以帮助你...

    Nginx+Mongrel实践过程

    总结,Nginx+Mongrel的组合是Ruby on Rails应用的一种有效部署方式,通过Nginx的反向代理和负载均衡功能,可以实现高效、稳定的服务提供。理解并掌握这种部署模式对于提升系统性能和运维能力至关重要。

    薄荷网RubyonRails开发运营实践.pptx

    应用服务器上,他们最初使用Mongrel,一种Ruby应用服务器,但由于其不支持多线程,所以计划迁移到Passenger,因为Passenger(也称为ModRails)能够更好地整合到Nginx和Apache中,提供更高的性能和更简单的管理。...

    Windows下Redmine1.1.1的配置清单.doc

    Redmine 是一个基于 Ruby on Rails 开发的开源项目管理工具,尤其适合软件开发团队使用。在Windows环境下配置 Redmine 1.1.1 版本,需要遵循一系列步骤,包括安装必要的运行环境、配置数据库、下载和安装 Redmine ...

    instant-rails-2.0.7z

    集成了ruby 、rails 、apache 、mongrel、mysql(phpmyadmin),绿色免安装,解压即可。 内带示例程序cookbook和Typo.注意IIS服务器和迅雷等都可能占用80端口,要防止冲突。不仅可以作为rails程序运行环境,开发也非常...

    基于Ubuntu Nginx Mongrel Mysql部署rails

    博文链接:https://swachian.iteye.com/blog/175033

Global site tag (gtag.js) - Google Analytics