LBやProxy経由のアクセスのログをそのまま取得すると、アクセス元IPアドレスが
すべてLBやProxyのIPアドレスになる。
こういった場合は、X-Forwarded-Forから本当のアクセス元(クライアント)の
IPアドレスを取得する。
最左がClientIP、カンマ区切りで経由してきたLBやProxyのIPアドレスとなる。
e.g. X-Forwarded-For: client1, proxy1, proxy2
xfor:192.168.26.48, 192.168.24.199
一般的な設定であれば、X-Forwarded-ForにClientIPがセットされる。
e.g. HAProxyのオプション
option forwardfor except 127.0.0.0/8
192.168.24.xのネットワークでLB・Proxyが設置されていれば、以下のようになる。
server { ~省略~ ## LB X-Forwarded-For ## LB経由nginxのアクセスログにクライアントIPを記録する set_real_ip_from 192.168.24.0/24; # LB IpAddress real_ip_header X-Forwarded-For; ~省略~
ただしLBやProxyが多段になっている場合、上記設定では正しく取得できない。
その場合は、real_ip_recursiveオプションを設定する。
server { ~省略~ ## LB X-Forwarded-For ## LB経由nginxのアクセスログにクライアントIPを記録する set_real_ip_from 192.168.24.0/24; # LB IpAddress real_ip_header X-Forwarded-For; real_ip_recursive on; ~省略~