1. Apacheの設定ファイル(httpd.conf/apache2.conf)をテキストエディタで開き、変更後の内容に修正して保存します。
<変更前>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
<変更後>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
2. Apacheを再起動します。
3. ApacheにHTTP/HTTPSアクセスした際に、ロードバランサーのIPアドレスではなく、クライアントのIPアドレスがアクセスログに出力されていることを確認します。
※ロードバランサーにAWSのApplication Load BalancerまたはClassic Load Balancerを利用している場合でも上記の設定を行うことで、クライアントのIPアドレスをアクセスログに出力することが可能です
X-Forwarded-For: xxx.xxx.xxx.xxx
X-Forwarded-Host:クライアントによってリクエストされた元のホストとポートを格納します。リバースプロキシ (ロードバランサー、 CDN) のホスト名とポート番号が異なる場合に元のホストを判別することが可能です。
X-Forwarded-Host: www.foo.com:8080
X-Forwarded-Proto:クライアントがプロキシやロードバランサーに接続するために使用したプロトコルを識別します。
X-Forwarded-Proto: https
X-Forwarded-Port:クライアントがプロキシやロードバランサーへの接続に使用したリスナー・ポート番号を識別します。
X-Forwarded-Port: 443