複数のCatalystアプリをApacheでfastcgi編
ゆーすけべーさんの
複数の Catalyst アプリ を複数の apache でサーブさせる .confCommentsAdd Star
http://yusukebe.com/archives/09/05/26/124559.html
をみました。
うちでもApache + mod_perlならだいたい同じような感じになりますね。
フロントエンドで画像、CSS、javascriptを配信して、アプリはバックエンド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サーバでやった方がいいと思う。 念のために書きますがこれらの設定は個人でサーブできるような比較的小さなアプリです。大規模なのはもちろん想定外です。