nginxにてELB経由の接続からアクセス元IPを取得する方法

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

ELB経由の接続はログにプライベートIPが記述される

AWSにてELB(ロードバランサー)を設定しているEC2のアクセスログを確認すると、接続元IPアドレスがELBのプライベートIPアドレスになっています。今回はnginxにてELB経由の接続でも、接続元のグローバルIPアドレスを取得する方法をご紹介します。

 

アクセスログのサンプル

下記のログファイルの抜粋は、ELBに接続されたEC2のアクセスログです。見事に接続元のIPアドレスがELBのプライベートIPアドレスになってますね。

 

接続元IPアドレスの取得方法

nginxの設定ファイルに下記の設定を追記しましょう。
ELBが使用する[172.31.0.0 ~ 172.31.255.255]のIPアドレスに対して、接続元のIPアドレスを表示する設定を付与します。

 

さいごに

対処方法は簡単なのでELBに接続するEC2サーバーには必ず設定しましょう。何かの調査や確認をしようとしたときに、アクセスログの接続元IPアドレスがローカルIPで愕然としないようにして注意してくださいね。
※ELBの最初に使用したときの私は、調査するときにアクセスログの接続元IPアドレスが全てローカルIPで保存されていて絶望を覚えました( ;∀;)