proxy.server の設定ではまった
久しぶりにサーバの日記。
フロントエンドに lighttpd を、バックエンドに apache2 を使うための設定をすることに。
や
- [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