Rails 環境調査

最近Ruby on Railsの面白さにハマり、いろいろネットで情報を収集しています。
皆さん様々な環境やサーバソフトウェアの組み合わせで試みているようですね。
今回はRailsアプリケーションを動かす環境について、自分なりのまとめです。

httpサーバ

  • lighttpd
その名の通り、「軽い」httpサーバ。また、安全で柔軟性もあるとされる。
Apacheとのベンチマーク比較でも、同等かわずかに上回るパフォーマンスとのこと。


  • Mongrel
Rails アプリケーションサーバ。Java世界で言うところの、Jakarta Tomcat。
RubyとCの拡張ライブラリで書かれている。
Apacheをリバースプロキシとして動作させ、Railsアプリはmongrel_cluster(負荷分散や複数のRailsアプリを動作させるためのMongrelプロセス複数起動)という役割で利用されることが多い。


  • WEBrick
Rubyに標準添付されているhttpサーバソフトウェア。
公式ページにはhttpサーバ構築のためのライブラリと記されている。主に開発用に使用する。

WEBrick is a Ruby library program to build HTTP servers.

via: RAA – webrick

実際にWEBrickでhttpプロキシサーバを作るチュートリアルがこちらに載っている。


httpサーバと組み合わせるモジュール

  • FastCGI
CGIはクライアントからhttpリクエストがある都度プロセスを立ち上げ、レスポンスを返した後にそのプロセスを落とす。このオーバーヘッドを無くそうとしたものがFastCGI。FastCGIによって起動されたCGIプログラムはHTTPDプロセスとは別に起動するが、CGIの処理が終了してもプロセスは残る。そのプロセスを使い回すことでパフォーマンスの向上が図れる。
こちらにより詳細な解説があります。


  • Passenger(mod_ruby)
RailsアプリケーションをApache上で動作させるためのモジュール。PHPでいうところの、mod_php。これがあればMongrelやWEBrickは不要。パフォーマンスにおいてもMongrelより(ちょっと)早いらしい。

passenger_mongrel_thin_benchmark.png 画像は公式サイトより。
インストール方法など詳細な解説はこちら


まとめ

最近リリースされたPassengerが一番手軽そうですが、信頼性についてはまだまだ未知数です。

コメントを投稿する