でじくる。

主にプログラムの話題などを扱うブログです。

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。

名前解決したい場合はご愁傷様。

 

微妙にめんどくさいので、もっといい方法も

あるんじゃないかという気もします。