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です!簡単ですね!