apache :: Rpaf(mod_rpaf)

vps等で利用しているサーバがリバースプロキシを使っている場合、アクセスログに出力されるリクエスト元IPアドレスはプロキシサーバのIPアドレスになってしまう。そのため、本来のリクエスト元IPアドレスがわからない。
対応策として、モジュール「mod_rpaf」をインストールしてリクエスト元IPアドレスを取得します。

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

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

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

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

mod_rpafのインストール

tarballの取得

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.5.tar.gz
tar xvfz mod_rpaf-0.5.tar.gz
cd mod_rpaf-0.5

Apache のインストール先にあわせて Makefile の APXS= の行を変更

vi Makefile
APXS=/usr/bin/apxs

make する。(Apahce 1.3系 と 2系 でコマンドが異なる)

make rpaf
sudo make install
make rpaf-2.0
sudo make install-2.0

以上でインストールは完了。

最後に httpd.conf の最下部に下記の設定を加える。

LoadModule rpaf_module /path/to/mod_rpaf.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1
LoadModule rpaf_module /path/to/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1

mod_rpaf.so のパスは環境にあわせて変更
RPAFproxy_ips のIPアドレスは環境にあわせて変更

ここに設定されているIPアドレスからアクセスがあった時、リクエストヘッダ「X-Forwarded-For」のIPアドレスをApache内部の「remote_ip」として書き換えてくれます。