mod_fastcgi

Apache + mod_fastcgiを使ってCatalystを動かす。

Apacheの設定

Apacheとfastcgiが通信する方法はいくつかあるが、ここでは外部サーバ方式を採用する。 以下はhttpd.confの一部。

 <IfModule mod_fastcgi.c>
    FastCgiExternalServer /tmp/test1.fcgi -socket /tmp/test1.socket -idle-timeout 120
    FastCgiExternalServer /tmp/test2.fcgi -socket /tmp/test2.socket -idle-timeout 120
 </IfModule>
 
 <VirtualHost *:80>
   RewriteEngine on
   RewriteRule ^/(.*) /tmp/test1.fcgi/$1 [L]
   #Alias        / /tmp/test1.fcgi/
   <Files myapp_fastcgi.pl>
     SetHandler fastcgi-script
   </Files>
 </VirtualHost>
  • FastCgiExternalServer は動かしたいサイトの分だけ書く。
  • -idle-timeout はPerlプログラムの処理に時間がかかる時にタイムアウトしてしまわないように。
  • /tmp/test1.fcgi は実際には存在しないファイル。/tmp/test1.socketは実際に存在しなければいけないソケットファイル。
  • mod_rewriteまたはエイリアスによって、すべてのURLのリクエストをfastcgiのソケットに渡してしまう。もし、fastcgiに渡したくないページがあるなら、mod_rewriteの記述に追加すること。

Catalystの起動

 ./script/myapp_fastcgi.pl -n 3 -l /tmp/test1.socket
  • -n で起動する(そして常駐する)Perlプロセスの数を指定する。
  • -d を指定するとデーモン化してバックエンドで動く。

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2007-09-04 (火) 01:22:47