【TIPS】オリジンのアクセスログにウェブアクセラレータのIPアドレスではなく接続元のIPアドレスを記録したい

オリジンサーバのアクセスログに接続元のIPアドレスを記録する方法に関するページです。

ウェブアクセラレータを利用するとウェブアクセラレータのキャッシュサーバを経由してオリジンサーバへ接続されます。 そのため、アクセスログにはキャッシュサーバのIPアドレスが記録され、接続元のIPアドレスは記録されません。

ウェブアクセラレータからオリジンサーバへの接続時に、「接続元のIPアドレス」などの情報を渡すために、下記のリクエストヘッダの値として情報を記録しています。
こちらを利用することでアクセスログに接続元IPアドレスなどを記録することができます。
※ ただし、オリジンサーバ側の仕様で特定のヘッダの値が上書きされている場合は値を取得することが出来ません。

ヘッダ名
X-Real-IP 【接続元IPアドレス】
X-WebAccel-Viewer-Address 【接続元IPアドレス】:【接続元ポート番号】
X-Forwarded-For 【接続元IPアドレス 1】, 【接続元IPアドレス 2】, … (追記形式)

Apache利用の場合

httpd.confに以下の記述をすることで接続元のIPアドレスが記録されるようになります。

RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy 133.167.4.0/24 153.121.0.0/24

注釈

アクセスログフォーマット %h(リモートホスト) は mod_remoteip の書き換え対象外です。
%a(リモートIPアドレス) をログ出力にご利用ください。

注意

ウェブアクセラレータのキャッシュサーバのIPアドレスは追加になることがあります。 こちら をご参照ください。

nginx利用の場合

nginx.confに以下の記述をすることで、接続元のIPアドレスが記録されるようになります。
※ X-WebAccel-Viewer-Addressを指定する場合は接続元ポート番号も記録されるようになります。

real_ip_header X-Real-IP;
set_real_ip_from 133.167.4.0/24;
set_real_ip_from 153.121.0.0/24;

または

real_ip_header X-WebAccel-Viewer-Address;
set_real_ip_from 133.167.4.0/24;
set_real_ip_from 153.121.0.0/24;

注意

ウェブアクセラレータのキャッシュサーバのIPアドレスは追加になることがあります。 こちら をご参照ください。