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