Passenger
a panacea for Ruby web apps
         Shunichi Arai
ざっくり比較

              • 高安定性・簡単設定
    CGI
              • Rails/Gemは動かない

Rubyウェブサーバ • Railsが動く
  (mongrel等) • 低速?・管理が面倒

...
CGI
• アクセスがあるたびに
  Rubyプログラムを
  毎回、起動する
• 起動に時間がかからな
  い作りならOK
• Railsは絶対動かない
• 毎回起動されるので、
  安定性は非常に高い
Mongrel + mod_proxy_balancer
          Apache子   HTTP

                           mongrel
          Apache子



Apache親   A...
Mongrel + mod_proxy_balancer
• Mongrel (webrick) は
  Rubyで書かれた
  ウェブサーバ
• mod_proxy_balancerは
  Apacheの提供する
  リバースプロキシ型
  ...
Mongrel + mod_proxy_balancer
          の問題点
              • mod_proxy_balancerは、
                処理中、停止中の
                ...
mod_proxy_balancer
は出来がいまいち?
Passenger
                           管理プロセス
          Apache子
           mod_passenger        Rubyプロセス

          Apache子
...
Passenger
• Apacheに
  mod_passengerという
  モジュールが入る
• mod_passengerが
  rubyプロセスの
  起動・終了などを管理
• mod_passengerが
  RailsやRackな...
Passengerの利点
      • Global Queingにより
        応答可能サーバのみ
        アクセスされる
      • 自動で増減してくれて
        メモリが節減
      • 定期的再起動など...
Passengerのインストール
• gem install passenger
• passenger-install-apache2-module
• Httpd.confをちょろっと書き換え
    簡単!
• 再起動は
   touc...
Passenger
Passenger
Upcoming SlideShare
Loading in …5
×

Passenger

3,048 views

Published on

Rubyist九州の2009年10月定例会資料です

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,048
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
12
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Passenger

  1. 1. Passenger a panacea for Ruby web apps Shunichi Arai
  2. 2. ざっくり比較 • 高安定性・簡単設定 CGI • Rails/Gemは動かない Rubyウェブサーバ • Railsが動く (mongrel等) • 低速?・管理が面倒 • 高安定性・高速・Railsが動く Passenger • Apacheのモジュールが必要
  3. 3. CGI • アクセスがあるたびに Rubyプログラムを 毎回、起動する • 起動に時間がかからな い作りならOK • Railsは絶対動かない • 毎回起動されるので、 安定性は非常に高い
  4. 4. Mongrel + mod_proxy_balancer Apache子 HTTP mongrel Apache子 Apache親 Apache子 mongrel Apache子 mongrel Apache子 Apache子
  5. 5. Mongrel + mod_proxy_balancer • Mongrel (webrick) は Rubyで書かれた ウェブサーバ • mod_proxy_balancerは Apacheの提供する リバースプロキシ型 ロードバランサー • ロードバランサーで 複数のmongrelに HTTPで処理を分配する
  6. 6. Mongrel + mod_proxy_balancer の問題点 • mod_proxy_balancerは、 処理中、停止中の プロセスにも配分する – Mongrelを再起動すると しばらく表示が止まる • Mongrelは決まった数が スタートしており、 動的な増減が不可能 – 一部を再起動とか面倒 • Mongrelは遅い (体感) – Rubyでウェブサーバって? • 疎結合すぎる
  7. 7. mod_proxy_balancer は出来がいまいち?
  8. 8. Passenger 管理プロセス Apache子 mod_passenger Rubyプロセス Apache子 mod_passenger Rubyプロセス Apache親 Apache子 mod_passenger Rubyプロセス Apache子 mod_passenger Rubyプロセス Apache子 mod_passenger
  9. 9. Passenger • Apacheに mod_passengerという モジュールが入る • mod_passengerが rubyプロセスの 起動・終了などを管理 • mod_passengerが RailsやRackなどと 通信して処理を依頼 • Rails/Rackしか動かない
  10. 10. Passengerの利点 • Global Queingにより 応答可能サーバのみ アクセスされる • 自動で増減してくれて メモリが節減 • 定期的再起動などの 機能もある (Railsはメモリリークしが ち) • 安定して動く • 再起動が簡単
  11. 11. Passengerのインストール • gem install passenger • passenger-install-apache2-module • Httpd.confをちょろっと書き換え  簡単! • 再起動は touch tmp/restart.txt とするだけ • Deployが楽ちんになった

×