Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
vps等で利用しているサーバがリバースプロキシを使っている場合、アクセスログに出力されるリクエスト元IPアドレスはプロキシサーバのIPアドレスになってしまう。そのため、本来のリクエスト元IPアドレスがわからない。
対応策として、モジュール「mod_rpaf」をインストールしてリクエスト元IPアドレスを取得します。
HTTPリクエスト → (Webサーバー)
通常のサーバー構成の場合、Webサーバーで取得するリモートIPアドレスはリクエストを行ったクライアントのものになる。
HTTPリクエスト → (リバースプロキシサーバー) → (ローカルWebサーバー)
リバースプロキシの構成の場合、Webサーバーで取得するのはリバースプロキシのIPアドレスになってしまう。
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」として書き換えてくれます。