nginx リバースプロキシ側からアクセス元のIPアドレスを渡す

nginx リバースプロキシ側からアクセス元のIPアドレスを渡す

nginxでリバースプロキシ側からバックエンド側にアクセス元のIPアドレスを渡す手順を記述してます。nginxのバージョンは1.18.0を使用してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • nginx 1.18.0

リバースプロキシ側設定

まずは、リバースプロキシ側のヘッダー情報「X-Forwarded-For」を追加します。

X-Forwarded-Forは、以下の流れで値を保持していくため、一番初めの値を取得すれば送信元のIPを取得することができます。

設定を反映させるため再起動します。

バックエンド側

バックエンド側には、「set_real_ip_from」にリバースプロキシ側のIPと、「real_ip_header」にX-Forwarded-Forを指定してあげれば、送信元のIPアドレスをバックエンド側でも取得することが可能です。

「set_real_ip_from」でバックエンド側のIPのみ書き換え可能となります。

設定を反映させるため再起動します。