読者です 読者をやめる 読者になる 読者になる

Ruby で書かれた CGI を FastCGI化する

Ruby

自分専用の CGI を幾つか使っているのですが、頻繁に使うようになってくると 遅い と思うようになり FastCGI化してみました。
RubyFastCGIライブラリーは gem または http://www.moonwolf.com/ruby/archive/ からダウンロードしインストール。

元の CGI が以下の場合

require 'cgi'

def cgi_main
  @cgi = CGI.new
  ....
end
  ...
cgi_main

以下のように変更すれば基本的にはOK

require 'fcgi'

def cgi_main(cgi)
  @cgi = cgi
  ...
end
  ...

FCGI.each_cgi {|cgi|
  cgi_main(cgi)
}

今回のCGIには ENV['SCRIPT_NAME'] のようなCGI環境変数の参照があったので、それを @cgi.script_name のような CGI (FCGI) が持つ属性に書き換える必要がありました。

案外簡単に高速化できました (^。^)