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