2011/11/03

nginx が Pound にぶら下がってたりする場合に realIP を取得する

nginx が Pound にぶら下がってたりするとかまったく意味がわからないかもしれませんが、まあそういう環境があったりしてですね、apache でいうところの mod_rpaf 的なことがしたいなと思ったりすることもあるわけです。つまり、L7 proxy 配下の nginx で正しいIPを取得する方法。

ずばり、HttpRealIpModule を使用すれば OK

このモジュールは、デフォルトのビルドに含まれないので、configure option に以下のように追加してビルドする必要があります。
なんか Ubuntu/Debian のパッケージだと、これを含んでるらしい。

--with-http_realip_module

conf では、以下のように、書き換える IP 帯と参照するヘッダを書く。

set_real_ip_from   192.168.1.0/24;
real_ip_header     X-Forwarded-For;

以上で nginx 側の設定はおわり。

Pound 側は以下の設定が必要。

HeadRemove "X-Forwarded-For"

あとは、nginx と Pound にシグナル送って設定を反映させたら終了。

参考: nginx log real IP from Pound

サイト内検索