AWS Apacheの接続元IPをロードバランサーからクライアントに変更


経緯

ロードバランサー経由で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]

, , ,

コメントを残す

メールアドレスが公開されることはありません。