2008-01-07
Ruby製サーバ"Thin"
Mongrel + EventMachine + Rack
RubyInsideでThinというものが紹介されていたらしいです。俺ははてブ経由で知ったのですが。公式サイトを見る限りではMongrelのパーサーを使って、EventMachineというネットワーク I/O ライブラリを使って、Rack対応らしいです。Mongrelのパーサーを使っているから高速で安全、EventMachine使っているから安定していてスケーラビリティ、とのことでした。
Mongrel
言わずもがな、Rubyに見切りを付けるかもしれないZedが作ったRuby製Webサーバーです。
EventMachine
ネットワークプログラミング用のライブラリらしいです。コアはC++で書かれているらしいですが、Rubyで書かれているものもあるようです。
RubyForge: Ruby/EventMachine: Project Info
Young risk taker.: Ruby/EventMachineでネットワークプログラミング
Rack
Webサーバー毎の差を処理してくれるライブラリみたいです。ハンドラーはCGI,FastCGI,WEBrick,Mongrelがあって、Rackを通せば同じコードがどのサーバーでも動くというものみたい。
Rack: a Ruby Webserver Interface
ウノウラボ Unoh Labs: RackでWebアプリのWebサーバー依存を無くす
インストールから動かすまで
Mongrelみたいにscript/serverで立ち上がるようにできるのかもしれませんが、ちょっとそこまでは調べきれていません。とりあえずインストールから起動までをまとめてみた。
インストール
> sudo gem install thin
EventMachineはC++でコアが書かれているため、C++のコンパイラが必要になります。入っていなかったらmake通らないよって怒られるので事前に入れておきましょう。Windowsの人は個人用途ならBorland C++Compiler辺りでいいのではないでしょうか。もしくはcygwinとか。
動かす
> cd RAILS_ROOT
> thin start
Railsアプリの場合の例。超簡単です。ポート番号はデフォルトだと3000番ですが、もし変えたければ-pオプションで指定できます。他にも-dオプションでデーモンとして起動させたりもできるっぽいです。
動かしてみた感じ
動かしたといっても簡単なテストアプリを走らせただけなんで、Mongrelとかとの速度の違いは全然分かりませんでした。もっと作り込んだら分かるんでしょうけども・・・・・・。
