mod_proxy:mod_rpaf:リバースプロキシとバックエンドのIPアドレス
Linux・Unix・Apache
2006年02月24日
リバースプロキシ導入の際に、バックエンドサーバーで取得するリモートIPアドレスが全てリバースプロキシの値になってしまうという問題。。
これについては、以下のサイトを参考に対応しました。
これについては、以下のサイトを参考に対応しました。
mod_rpafを試してみました
リバースプロキシ(Pound)を使うとバックエンドのApacheのアクセスログに記録されるリモートIPがすべてプロキシのIPになってしまうといった問題があります。
実はその通りで、このままだと、Apache側のログで正常なアクセス分析ができないといった問題の他に、リバースプロキシ経由でアクセスした場合、リモートIPによるアクセス制限(allow from 192.168.xx.など)が有効にならないといったセキュリティ上の問題も発生します。
このままではまずいので、バックエンドの Apache に mod_rpaf というモジュールをインストールします。
上記現象は、mod_proxyによるリバースプロキシでも同様に発生しました。
つまり、
のように通常のサーバー構成だと、Webサーバーで取得するリモートIPアドレスはリクエストを行ったクライアントのものなのですが、
というようなリバースプロキシの構成だと、Webサーバーで取得するのはリバースプロキシのIPアドレスになってしまうという現象です。
注意点、、というか簡単な事ですが、mod_rpafをインストールするのはバックエンドサーバー(ローカルWebサーバー)であり、リバースプロキシサーバーではありません。
設定も参考サイト同様、
という感じにすればOK。
ネット上では、Poundを使ったリバースプロキシ導入の際に、mod_rpafの事を触れられているのが多いですが、mod_proxy(Apacheはバージョン2.2)でも導入の必要があるかと思います。
ってか、ひょっとしたら他の設定があるかもですが。。
つまり、
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)でも導入の必要があるかと思います。
ってか、ひょっとしたら他の設定があるかもですが。。
前の記事 次の記事