ガチャガチャ

Apache で ReverseProxy

要 mod_proxy。

Squidとか使えばもっと色々便利みたいですが、ここでは簡単な apacheをつかった バーチャルサーバー+リバースプロクシ。

| User | => | 鯖A | =>ローカル接続 => | 鯖B |

な場合です。

これは鯖A の http://鯖A/subdir/ を 鯖Bのバーチャルサーバーにマップするのではなくて単に受け渡す場合です。 上記のディレクトリをマップする場合は ProxyPassReverseの設定がないとリダイレクトで問題が起きますし、 鯖Bのコンテンツに絶対パスなどがあると問題発生するらし。

鯖A /etc/hosts に 鯖Bにあるホスト情報を書く

192.168.1.100 host.domain
(鯖AがローカルDNSを参照して このアドレスが引ければ これはいらない)

鯖Aのhttpd.confに以下のバーチャルホストの記述を書く

<VirtualHost 192.168.1.100:80>
ServerName host.domain
ServerAlias www.host.domain
ProxyPass / http://host.domain/
</VirtualHost>

鯖Bには普通に バーチャルホストを置けばOK。ログは 鯖Bで取る方法もありとおもいますが、 RemoteAddrなどの関係で鯖Aで取った方が良い。

プログラムで remoteaddrが欲しい場合は x-forwarded-addr (だっけかな)を取得して代用する。

 

 

02:09:34 on 10/17/05 - Category: PC・ネット

TrackBack

Trackback URL : http://www.affee.net/action.php?action=plugin&name=TrackBack&tb_id=139