2007-01-05
在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails
关键字: apache mongrel在Windows平台使用Apache2.2和Mongrel运行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 代码
- ProxyRequests Off
- <Proxy balancer://myCluster>
- BalancerMember http://localhost:3000
- BalancerMember http://localhost:3001
- </Proxy>
- <VirtualHost *:80>
- ServerName www.xxx.com
- DocumentRoot d:/rubyproject/depot/public
- ProxyPass /images !
- ProxyPass /stylesheets !
- ProxyPass /javascripts !
- ProxyPass / balancer://myCluster/
- ProxyPassReverse / balancer://myCluster/
- ProxyPreserveHost on
- </VirtualHost>
myCluster定义了群集中的每个mongrel应用服务器节点。ProxyPass /images !指明该URL开始的请求不代理给Mongrel群集,而由Apache自己处理。重起Apache,然后打开浏览器访问www.xxx.com,检查配置是否正确。
至此,在Windows Server上面一个具备良好稳定性和性能的Ruby on rails生产环境就搭建好了。
对于页面输出,还可以使用mod_deflate进行输出内容压缩,以提高页面下载速度,这个就留给大家自己配置了。
评论
huangye177
2007-05-08
To: simon_lin这是你的链接到rails有问题,估计是网络不好
prolibertine
2007-05-08
不知道可不可以在iis下面配置ror啊
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
这是什么问题?怎么处理?谢谢!
gem install rails –y
这一步时,总是提示我
ERROR:While executing gem ... (Gem::RemoteFetcher:FetchError)
SocketError reading http://gems.rubyforge.org/gems/activesupport-1.4.2.gem
这是什么问题?怎么处理?谢谢!
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
这是什么问题?怎么处理?谢谢!
gem install rails –y
这一步时,总是提示我
ERROR:While executing gem ... (Gem::RemoteFetcher:FetchError)
SocketError reading http://gems.rubyforge.org/gems/activesupport-1.4.2.gem
这是什么问题?怎么处理?谢谢!
hongyefei
2007-03-07
真的可以啊,楼上的谢谢
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>
谁知道哪样好些吗
<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
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}
请教大家,如何解决这个问题!
Routing Error
no route found to match "/rails/info/properties" with {:method=>:get}
请教大家,如何解决这个问题!
我也遇到了和你一样的问题,不知是什么原因
amozon
2007-02-13
melin 的资料很详细,谢谢
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}
请教大家,如何解决这个问题!
Routing Error
no route found to match "/rails/info/properties" with {:method=>:get}
请教大家,如何解决这个问题!
robbin
2007-02-03
还是好好去读apache的文档吧,别在这瞎猜
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>
谁知道哪样好些吗
<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处理了。奇怪。
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>
谁知道哪样好些吗
<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>
谁知道哪样好些吗
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>
<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>
zyjarge
2007-01-26
搭好了. 能用了, 可是有点问题,原先在Webrick下跑的好好的程序中文出现乱码了.
还得再研究研究啊.
还得再研究研究啊.
bomb_football
2007-01-24
已经解决了,需要需要rails命令创建一个Rails application目录后,才能创建服务。
btw:你这安装步骤是写给高手看的吧:)
btw:你这安装步骤是写给高手看的吧:)
bomb_football
2007-01-24
呵呵,麻烦你能说清楚一点吗?这个Rails application改怎么指定?
robbin
2007-01-23
!!! The path you specified isn't a valid Rails application.
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.
执行: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.
bogey
2007-01-16
有没有通过IIS转发指定来路的请求到Ruby上的?
之前在看ROR,想到服务器端的麻烦,WIN平台的IIS把80端口己占,当时在想可不可以在在IIS把指定的请求转到Ruby去处理
没有试
之前在看ROR,想到服务器端的麻烦,WIN平台的IIS把80端口己占,当时在想可不可以在在IIS把指定的请求转到Ruby去处理
没有试
koska
2007-01-15
- 浏览: 1677819 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
游乌镇
共 33 张
共 33 张
链接
最新评论
-
mod_rails尝鲜
我觉得还是mod_fcgid(不是mod_fastcgi)实际点
-- by zgd -
mod_rails尝鲜
hostingrails也已经提供mod_rails了
-- by leondu -
mod_rails尝鲜
dreamhost已经提供mod_rails了
-- by zgd -
关于JavaEye网站未来发展 ...
期待第三阶段目标的实现,但第三目标好像类似于google的云计算,建议赶紧开发, ...
-- by selectme_2008 -
总结一下大家对JavaEye网 ...
javaeye是我比较喜欢的一个网站,但盈利模式还是比较单一,让人怀疑网站是否能 ...
-- by selectme_2008






评论排行榜