pfSense box上で稼働するHAProxy経由でWordPressサイトを運用する場合デフォルト設定ではソースIPを取得することができません。
コメントや問い合わせフォームの発信元IPとしてファイアウォールのIPアドレスが記録されており実際のソースIPが消失してしまいます。
ちなみにこれまではNTT支給のルーターでDMZを構築して運用しておりソースIPがそのまま取得できる状態でしたがpfSenseでPort ForwardやHAProxyを採用以来サーバー側でのソースIPの取得方法を変更する必要が発生していました。
解決方法
X-Forwarded-Forを追加してapacheのアクセスログにはソースIPが追加されて解決できますが依然としてWordPress上では未解決もままでした。
そこで次のコードをwp-config.phpに追記することでソースIPを扱うことが可能になります。
// Use X-Forwarded-For HTTP Header to Get Visitor's Real IP Address if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $http_x_headers = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; }
これでコメントや問い合わせフォームの記録にアクセス元ソースIPを取得して記録することが可能になります。
参照記事
スポンサーリンク