複数のCatalystアプリをApacheでfastcgi編

ゆーすけべーさんの
複数の Catalyst アプリ を複数の apache でサーブさせる .confCommentsAdd Star
http://yusukebe.com/archives/09/05/26/124559.html
をみました。
うちでもApache + mod_perlならだいたい同じような感じになりますね。
フロントエンドで画像、CSSjavascriptを配信して、アプリはバックエンドmod_perlになげちゃう設定です。

ただ最近mod_perl+DBICでめんどうな事がおこったりしてからApache + fastcgiでやってたりするのでその設定を書いてみる。
lighttpdはあまり好きじゃないので使ってませんです。

フロントエンド

基本的にはとばしてやるだけ。 あまり変わりない。

<VirtualHost IPアドレス>
    ServerName myapp1
    DocumentRoot /home/myapp1/release/myapp1/root/
    ErrorLog /home/myapp1/http-error.log
    CustomLog /home/myapp1/http-access.log combined env=!no_log
    ErrorDocument 404 /home/error/404.html

    RewriteEngine     On
    ProxyPreserveHost On
    RewriteLog        /home/myapp1/rewrite_log
    RewriteLogLevel   0
    RewriteRule ^/(static/|favicon.ico) - [L]
    RewriteRule ^/(.*)$ http://127.0.0.1:8765/myapp_fastcgi.pl/$1 [P]
    ProxyPassReverse / http://127.0.0.1:8765/
</VirtualHost>

複数有るなら複数のvirtualhostを記述

バックエンド(fastcgi)

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1

NameVirtualHost *:8765
FastCgiConfig   -maxClassProcesses 3
FastCgiConfig   -startDelay 60
FastCGIConfig   -idle-timeout 600

<VirtualHost *:8765>
        ServerName myapp1
        DocumentRoot "/home/myapp1/release/myapp1/script"
        <Directory /home/myapp1/release/myapp1/script>
                AddHandler fastcgi-script .pl
        </Directory>
        ErrorLog /home/myapp1/fastcgi_error.log
        CustomLog /home/myapp1/fastcgi_access.log combined
</VirtualHost>
こちらも複数有るなら複数記述か、1個のアプリで1個のサーバ

fastcgiの場合1個のサーバでも複数のアプリサーブする場合に便利だと思う。
mod_perlでも同じように複数のvirtualhostで記述すれば1個のサーバで複数のmod_perlもできる。 でもmod_perlの場合1アプリ1サーバでやった方がいいと思う。 念のために書きますがこれらの設定は個人でサーブできるような比較的小さなアプリです。大規模なのはもちろん想定外です。