Apacheでmod_remoteipを使うときに気をつけておいた方がよいこと
前twitterか何かに書いた気もしますが、
先日公開されたApache 2.4.1からmod_remoteipという
モジュールが追加されています。
httpdがロードバランサの後ろとかにいると
アクセスログにはロードバランサのipが記録されてしまうので
困るよね、というのを解決できるモジュールです。
Apache Module mod_remoteip
http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html
ロードバランサがX-Forwarded-Forで
元のIPアドレスを返してくれる、というよくある状況だと、
httpd.confには
RemoteIPHeader X-Forwarded-For
とか書いておけばOK。
ただ、一つ気をつけることがあって、
置き換えられるのはリモートipであって
リモートホストではないみたいなのです。
なので、アクセスログをデフォルトのままっぽくしておくと
相変わらずロードバランサのipアドレスが記録されます。
アクセスログにX-Forwarded-Forを記録するようにした場合は
何も記録されない、と。
どうすればいいかというと、
簡単な話でリモートipを記録するようにすればいいわけですね。
デフォルトだと%hになっているところを%aに変えればOK。
名前解決したい場合はご愁傷様。
微妙にめんどくさいので、もっといい方法も
あるんじゃないかという気もします。