Web Artisan Blog - ウェブ アルチザン ブログ

mod_proxy:mod_rpaf:リバースプロキシとバックエンドのIPアドレス

Linux・Unix・Apache

2006年02月24日

アフィリエイトから企業サイト分析まで。訪問者の動きがまるわかりのアクセス解析サービス「リサーチアルチザンプロ」

LINEやSkypeみたいなビデオ通話がブラウザだけでできる!オンライン通話サービス「EZ-Interview - イージーインタビュー」

リバースプロキシ導入の際に、バックエンドサーバーで取得するリモートIPアドレスが全てリバースプロキシの値になってしまうという問題。。
これについては、以下のサイトを参考に対応しました。

mod_rpafを試してみました
リバースプロキシ(Pound)を使うとバックエンドのApacheのアクセスログに記録されるリモートIPがすべてプロキシのIPになってしまうといった問題があります。
実はその通りで、このままだと、Apache側のログで正常なアクセス分析ができないといった問題の他に、リバースプロキシ経由でアクセスした場合、リモートIPによるアクセス制限(allow from 192.168.xx.など)が有効にならないといったセキュリティ上の問題も発生します。
このままではまずいので、バックエンドの Apache に mod_rpaf というモジュールをインストールします。



上記現象は、mod_proxyによるリバースプロキシでも同様に発生しました。
つまり、

HTTPリクエスト → (Webサーバー)


のように通常のサーバー構成だと、Webサーバーで取得するリモートIPアドレスはリクエストを行ったクライアントのものなのですが、

HTTPリクエスト → (リバースプロキシサーバー) → (ローカルWebサーバー)


というようなリバースプロキシの構成だと、Webサーバーで取得するのはリバースプロキシのIPアドレスになってしまうという現象です。

注意点、、というか簡単な事ですが、mod_rpafをインストールするのはバックエンドサーバー(ローカルWebサーバー)であり、リバースプロキシサーバーではありません。
設定も参考サイト同様、
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 192.168.*.*(任意のローカルWebサーバーのIPアドレス)

という感じにすればOK。

ネット上では、Poundを使ったリバースプロキシ導入の際に、mod_rpafの事を触れられているのが多いですが、mod_proxy(Apacheはバージョン2.2)でも導入の必要があるかと思います。
ってか、ひょっとしたら他の設定があるかもですが。。


Web面接に最適。ブラウザだけでビデオ/音声通話ができるオンライン通話サービス。「EZ-Interview - イージーインタビュー」
訪問者録画機能も付いたシンプルで高機能なリアルタイムアクセス解析「リサーチアルチザンプロ」