はちゅにっき

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

proxy.server の設定ではまった

久しぶりにサーバの日記。
フロントエンドに lighttpd を、バックエンドに apache2 を使うための設定をすることに。

Lighttpd/コンフィグ
http://linux.mini13i.gotdns.org/Lighttpd%2F%A5%B3%A5%F3%A5%D5%A5%A3%A5%B0.html

[Perl][Catalyst][Lighttpd]Lighttpd + mod_proxy で Catalystに飛ばす時
http://d.hatena.ne.jp/holidays-l/20080423/p2

を見ればカンタンに設定できそうだなー。
と思いつつ設定したものの

$ telnet localhost 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

となってしまい、lighttpd が立ち上がらないという始末。

何が原因???
と、ひたすら困っていたら、proxy の設定で

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

"port" => "8080"

のように、port 番号を "(ダブルクォーテーション)" で囲っていたのが原因でした。
まさか、こんなところでハマるとは。。。


そんなこんなで lighttpd の設定はなんとなく完了した感じ?
以下は設定した内容

mod_proxy を有効に

# lighttpd-enable-mod
Available modules: auth cgi fastcgi proxy rrdtool simple-vhost ssi ssl status userdir
Already enabled modules: cgi userdir
Enabling proxy: ok
Run /etc/init.d/lighttpd force-reload to enable changes

mod_proxy の設定

mod_proxy を設定するため、以下のファイルに設定を追記。

  • /etc/lighttpd/conf-enabled/10-proxy.conf
# mod_setenv を追記
server.modules   += ( "mod_proxy", "mod_setenv" )

# a.mydomain.jp でのアクセスを全部 apache に投げる
$HTTP["host"] == "a.mydomain.jp" {
    setenv.add-request-header = (
        "X-Forwarded-Host" => "a.mydomain.jp"
    )

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

これで、a.mydomain.jp でアクセスされた場合のみ
バックエンドの Apache に処理が回るように。

設定を反映させる

# /etc/init.d/lighttpd force-restart

このあとやらなきゃ

  1. static なファイルに関しては lighttpd でサーブできるといいよね。
  2. apache の方の設定もしなくちゃね。

おわり。