UNIX的なアレ

UNIX的なこととかいろいろ

Proxy配下のWebサーバでREMOTE_ADDRを取得するにはmod_remoteipを使おう

LB配下でもREMOTE_ADDRを取得したい!

AWSのELB配下のサーバを運用してたり、自分で構築したProxy的なLB配下にサーバをおいていたりすると、困るのがリモートのIPアドレスの取得です。

まぁX-Forwarded-Forを取得すればよいのですが、開発環境などちょっとことなる環境下にある場合も可能であれば同じように動かしたいものです。

そんな要件を満たすために、いくつかのモジュールが開発されていました。

まぁすでにメンテはされていないですし、今後のことも考えると個人的には標準のモジュールだけで解消したいところ。そもそも、Apach2.2で動かすにはPatchあてる必要があります。

Apache2.4を使っているのであれば標準のモジュールでこのあたりは解決できます。mod_remoteipというモジュールを使いましょう。

mod_remoteipを使う

インストールはすごく簡単です。これだけでOK!

cd httpd-2.4.x-/modules/metadata
sudo /usr/local/apache24/bin/apxs -a -i -c ./mod_remoteip.c

httpd.conf側の設定は以下の設定だけでOK。

LoadModule remoteip_module    modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For

これだけでOKです!簡単ですね!