Nginx Apache のログファイルにリバースプロキシのIPが記録されてしまう

ショコラ
ショコラ

Nginx Apache のログファイルにリバースプロキシのIPが記録されてしまう

「X-Forwarded-For」でキメマス。

もっさん先輩
もっさん先輩

手順

  1. Nginx の設定ファイルの proxy_set_header に X-Forwarded-For を設定します。
proxy_set_header X-Forwarded-For $remote_addr;

または↓こちらです。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  1. Apache の remoteipモジュールを有効化します。

①PHPコンテナの場合

a2enmod remoteip

②CentOSコンテナの場合

既に mod_remoteipモジュールは有効化されているようです。有効化されていない場合は、自力で有効化します。

echo 'LoadModule mod_remoteip modules/mod_remoteip.so' > /etc/httpd/conf.modules.d/00-remoteip.conf
  1. アパッチの設定ファイルに RemoteIPHeader を追加します。
echo 'RemoteIPHeader X-Forwarded-For' > /etc/httpd/conf.d/remoteip.conf
  1. アパッチのログフォーマットを変更します。
sed -i -e 's/LogFormat "%h/LogFormat "%a/' /etc/httpd/conf/httpd.conf
  1. 設定を有効化するために、アパッチをリロードします。
service apache2 reload

因みに、PHPでは普通に REMOTE_ADDR で IPアドレスを取得できました。

echo $_SERVER['REMOTE_ADDR']

シチュエーション

リバースプロキシに Nginx を使っている。バックワードの Aapache のログファイルを見ると、リバースプロキシのIPが記録されていた。

Scroll to Top