-
Thinサーバーをまた使ってみる 2008-01-24 00:09:44
Rubyで書かれたwebサーバ Thinも、いつの間にかバージョン0.5.4になっていたので、また試してみることにします。以前、試してみたとき(「webサーバ Thin を使ってみる」)は、HTTPヘッダがおかしなことになって、cookieがうまく働かなかったりしましたが、今回は修正されているみたい。また試してみることにします。
関係ないけど、Thinのコードネームはおもしろいね。今回はFlying Mustardだそうです。
spider-manさんがすでに試されていますが、Thinにクラスタ機能が実装されました。が、まだちょっと使いにくそう。なので、以前作ったthin_clusterを改良してみました。
#!/usr/bin/ruby require 'yaml' CONFIG_FILE = "config/thin_cluster.yml" KEY = {"e" => :env, "p" => :port, "s" => :servers} def error puts "thin_cluster config|start|stop [options]" exit end error if ARGV.size < 1 case ARGV.shift when "config" config = {:env => "development", :port => 3000, :servers => 1} work = nil ARGV.each do |argv| if argv =~ /^\-([eps])(.*)$/ work = nil if $2 && !$2.empty? config[KEY[$1]] = $2 else work = $1 end elsif work config[KEY[work]] = argv work = nil end end YAML.dump(config, File.open(CONFIG_FILE, "w")) when "start" config = YAML.load_file(CONFIG_FILE) `thin -e #{config[:env]} -p #{config[:port]} -s #{config[:servers]} -d start` when "stop" config = YAML.load_file(CONFIG_FILE) `thin -p #{config[:port]} -s #{config[:servers]} stop` else error endソースを見れば一目瞭然だろうけど念のため使い方。すべてRAILS_ROOTで実行します。
まずは設定。thin_cluster config -p3000 -e production -s 2
一度設定しておけば、起動するときは
thin_cluster start
停止するときは
thin_cluster stop
でOKです。

コメント(
リンク元(79)