Tumblrリバースプロキシ導入の際に、バックエンドサーバーで取得するリモートIPアドレスが全てリバースプロキシのIPアドレスになってしまうという問題。これについては、http://www.namazu.org/~takesako/diary/?date=20031205で紹介されている通り、バックエンドのWebサーバが"Apache"の場合は「mod_rpaf」を使えば良いし、このやり方についてはインターネット上で結構紹介されている。バックエンドのWebサーバが"lighttpd"の場合は、どうすればよいのかというのが今日のお話。ログに記録すればよいなのだが、そうはいってもApacheのようにモジュールの組み込みでスマートに解決したい。この件については、探し方がまずかったのか、今日の時点ではGoogle先生に聞いても、なかなか情報が見つからず、仕方が無いのでlighttpdのドキュメントを読み漁ることにした。・・・あるじゃないですか。http://trac.lighttpd.net/trac/wiki/Docsここのモジュール一覧の中にある「mod_extforward」ですね。http://trac.lighttpd.net/trac/wiki/Docs/ModExtForward早速、このドキュメントに書いてある通りインストールを行ったのですが、これまた環境依存なのか、すんなりインストールできなかった。結論から言うと、インストールできて(無理矢理?)、いい感じで動作したので、そのやり方をここに書き留めておく。configure時のオプションは、お好きなように。install結局は、パッチが公開されているので、パッチを当ててconfigを作り直して、makeしてインストールなのですが、これをやっても、結局「mod_extforward」がインストールできなかった。configureを終了したときに、「mod_extforward」は確かに"enable"として表示されていたのに・・・。/mnt/domain0/dev/lighttpd/lib注:上記の"/mnt/domain0/dev/lighttpd"は、一例であり、この部分には、configure時にprefixで指定したものをあてはめてください。これで無事インストールできました。lighttpdインストール場所のlibにちゃんと「mod_extforward.so」があったので。あとは、lighttpdの設定ファイルに以下を追記。"trust")これで、リバースプロキシ経由でバックエンドのWebサーバ(lighttpd)にアクセスしても、Webサーバのログにはきちんとアクセス元のクライアントIPアドレスが残るようになります。@namikawaメールアドレス執筆・講演依頼や、その他ご連絡は、以下のメールアドレスまでお願いします。お問い合わせスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。