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

[更新: 2024年12月16日]

オリジンサーバのアクセスログに接続元の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 59.106.229.64/27

注釈

アクセスログフォーマット %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;
set_real_ip_from 59.106.229.64/27;

または

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;
set_real_ip_from 59.106.229.64/27;

注意

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