経緯
ロードバランサー経由でApacheにアクセスした場合、Apacheのアクセスログの接続元IPはロードバランサーのものとなります。
10.0.10.106 - - [06/Feb/2021:05:03:47 +0000]
10.0.10.106 - - [06/Feb/2021:05:03:47 +0000]
10.0.11.157 - - [06/Feb/2021:05:03:47 +0000]
10.0.10.106 - - [06/Feb/2021:05:03:48 +0000]
そこで、Apacheのコンフィグ(httpd.conf)を変更して、アクセスログにクライアントのIPを出力するように変更します。
設定
httpd.confのLogFormat記述部を下記のように変更します。
# 修正前
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
# 修正後
LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
保存後、Apacheを再起動します。
sudo systemctl restart httpd.service
確認
クライアントのIPが出力されていることが確認できました。
xxx.xxx.xxx.xxx 10.0.10.106 - - [06/Feb/2021:04:47:34 +0000]
xxx.xxx.xxx.xxx 10.0.10.106 - - [06/Feb/2021:04:47:36 +0000]
xxx.xxx.xxx.xxx 10.0.10.106 - - [06/Feb/2021:04:47:37 +0000]
xxx.xxx.xxx.xxx 10.0.10.106 - - [06/Feb/2021:04:47:37 +0000]