Apache+FastCGI+HTTP::Engineを使う手順 (Debian)

前回のポスト では、HTTP::Engine をインストールして、ServerSimple で
スタンドアローン(シングルセッション)な HTTP サーバを
起動してアプリを動作させることができました。
今回は、Apache+FastCGI を使ってみます。

(ことば)FastCGI とは・・・
従来の CGI は、リクエストのたびに Perl など CGI のプロセスが
起動されるのでレスポンスの性能が劣り、アクセスが集中した場合も
非常に負荷が高くなってしまう懸念点があります。
また、mod_perl は Apache に Perl のコードを内蔵させて高速ですが、
画像など静的ファイルの取得などで Perl を必要としないときでも
Apache の利用するメモリが肥大化してしまう懸念点があります。
FastCGI では、CGI プロセスは1回目から起動したまま残るので高速で、
また Apache の外で稼動するため、両方の懸念点を一挙に解決できます。
 

1. FastCGI をインストールする

今回は Apache を使うので、FastCGI 用の Apache モジュールと
Perl モジュールの両方をインストールしてます。
 
Apache モジュールは、mod_fastcgi と mod_fcgid の2種類があります。
違いについてはよく分かりません。(どちらでも動きました)
Debian であればインストールはカンタンでした。
# apt-get install libapache2-mod-fastcgi
または
# apt-get install libapache2-mod-fcgid
その後で
# /etc/init.d/apache2 reload
CentOS の場合は、yum でインストールできないのかな?(未確認)

続けて、Perl モジュールをインストールします。
# cpan FCGI
以上でインストールは完了です。
 

2. config.yaml を編集する

global:
  interface:
    module: FCGI
    request_handler: main::request_handler
前回の ServerSimple 版 との違いは、module に FCGI を使っている点と、
args が不要になっている点だけです。
 

3. run.fcgi を書く

$ cp -p run.pl run.fcgi
アプリ本体は、前回の run.pl のファイルそのままで動きます。
1行も書き換えずに済むのが、HTTP::Engine のポイント! 
 

4. HTTP/Engine/Interface/FCGI.pm を確認する

念のため、HTTP/Engine/Interface/FCGI.pm の冒頭を確認してください。
use HTTP::Engine::Interface
    builder => 'CGI',
    writer  => {
        response_line => 0,
response_line => 0 となっていれば OK です。
response_line => 1 となっていれば、0 に書き換えて下さい。
レスポンスで『HTTP/1.1 200 OK』を返すか否かの指定です。
CodeRepos の trunk は書き換えたので今後は変更不要なハズ…)
 

4. run.fcgi にアクセスする

ブラウザから http://192.168.xxx.yyy/path/to/run.fcgi にアクセスしてみて、
Hello, world! Tue Nov 4 19:53:18 2008
と表示されれば成功です。
 
FastCGI の仕組みにより、run.fcgi ファイル自体が更新された場合
自動的にリフレッシュ(再起動)してくれます。

[参考]
HTTP::Engine のインストール ~ ServerSimple を試してみる手順
Apache+FastCGI +HTTP::Engine を使う手順 (Debian)
Apache+mod_rewrite+mod_proxy+HTTP::Engineで外部アプリサーバ
 

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 68

なるほど(納得、参考になった、ヘー)
驚いた
面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い 面白い
ナイス ナイス ナイス
ガッツ(がんばれ!)
かわいい

この記事へのコメント

この記事へのトラックバック