天天看點

在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 代碼  

  1. ProxyRequests Off   
  2. <Proxy balancer://myCluster>  
  3.   BalancerMember http://localhost:3000   
  4.   BalancerMember http://localhost:3001   
  5. >  
  6. <VirtualHost *:80>  
  7.   ServerName www.xxx.com   
  8.   DocumentRoot d:/rubyproject/depot/public   
  9.   ProxyPass /images !   
  10.   ProxyPass /stylesheets !   
  11.   ProxyPass /javascripts !   
  12.   ProxyPass / balancer://myCluster/   
  13.   ProxyPassReverse / balancer://myCluster/   
  14.   ProxyPreserveHost on   
  15. >  

  myCluster定義了群集中的每個mongrel應用伺服器節點。ProxyPass /images !指明該URL開始的請求不代理給Mongrel群集,而由Apache自己處理。重起Apache,然後打開浏覽器通路 www.xxx.com,檢查配置是否正确。   至此,在Windows Server上面一個具備良好穩定性和性能的Ruby on rails生産環境就搭建好了。   對于頁面輸出,還可以使用mod_deflate進行輸出内容壓縮,以提高頁面下載下傳速度,這個就留給大家自己配置了。