はちゅにっき

こっちのブログはまったり更新

(lighttpd+mod_proxy) + (apache2 + mod_perl2 + catalyst)

なんぞこのタイトル。昨日の続き。


やりたいことは以下の通り。

  • フロントエンドは lighttpd
    • static なファイル (image, css, js...) を処理
    • perl(catalyst) な部分はバックエンドの apache2 さんに回す
  • バックエンドは apache2
    • Port 8080 で待ち受け
    • mod_perl2 を使って処理

ここの作業からの続きでもあります。

apache2 の導入
http://d.hatena.ne.jp/magicalhat/20080216/1203146791
proxy.server の設定ではまった
http://d.hatena.ne.jp/magicalhat/20080628/p1

static なファイルを lighttpd

といっても、catalyst では /static へのリクエストのみが
static なファイルへのリクエストになるので
これを処理するように、以下のファイルに設定を追記すればおっけー。

  • /etc/lighttpd/conf-enabled/10-proxy.conf
# a.mydomain.jp へのアクセス
$HTTP["host"] == "a.mydomain.jp" {
    # static なファイルを処理
    alias.url = ( "/static/" => "/var/www/MyApp/root/static/" )

    # それ以外はバックエンドに回す
    $HTTP["url"] !~ "^/static/" {
        setenv.add-request-header = (
            "X-Forwarded-Host" => "a.mydomain.jp"
        )

        proxy.server = (
            "" => (( "host" => "127.0.0.1", "port" => 8080 ))
        )
    }
}

catalyst を apache2 + mod_perl2 で

ここは普通に apache2 + mod_perl2 を設定すればいいみたい。

  • /etc/apache2/sites-enabled/mysite
# a.mydomain.jp を処理するディレクティブ
<VirtualHost *>
    ServerAdmin webmaster@mydomain.jp
    ServerName "a.mydomain.jp"
    DocumentRoot /var/www/MyApp
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
    ServerSignature Off

    PerlOptions +Parent
    LoadModule   perl_module modules/mod_perl.so
    PerlSwitches -I/var/www/MyApp/lib
    PerlLoadModule   MyApp
    SetHandler modperl
    PerlTransHandler MyApp
    PerlResponseHandler MyApp
</VirtualHost>

これで設定は完了したので

# /etc/init.d/lighttpd force-reload
# /etc/init.d/apache2 force-reload

して、設定を反映させれば終わり。

今後の予定

  1. フロントエンドの lighttpd は KeepAlive してもいいよね?