ページへ戻る

− Links

 印刷 

Nginx でリバースプロキシ経由時の REMOTE_ADDR を正しく得る のソース :: XOOPS マニア

UsersWiki:nao-pon/blog/2015-04-23のソース

« Prev[3]  
#navi
RIGHT:&rsslink(../);
#boxdate

* Nginx でリバースプロキシ経由時の REMOTE_ADDR を正しく得る [#p4f0f669]
RIGHT:&tag(Nginx,リバースプロキシ,自宅サーバ,REMOTE_ADDR,IP);

&ref(site://modules/xelfinder/index.php/view/1921/nginx_logo.png,right,mw:250,og);
Raspberry Pi2 で動いている [[Raspoops:http://pi2.hypweb.net/xoopsx/]] ですが、宅外からのアクセスは、この xoops.hypweb.net が動いている Apache をリバースプロキシにして Raspi の Neginx に転送しています。

今日、出先からちょっと調べたいことがあって Raspoops にアクセスしたら、あれ〜? Protector に BAN されてる!

#ref(site://modules/xelfinder/index.php/view/1920/BanByProtector.png,left,mw:400,mh:400)

ん?おかしいな?と思い帰宅後、宅内の PC から Raspoops の Protector を確認してみたら、「拒否 IP リスト」に 1行だけ等よくされていました。

 192.168.x.x:1432299382

って。

あ!リバースプロキシにしてる Apache のサーバー IP じゃん!

Protector の設定では、ローカル IP は BAN 対象から外しているので、HypCommonFunc のスパム対策で登録されたのだと思います。

あぁ、そうか! Nginx に通知される REMORT_ADDR は、リバースプロキシのそれなんだぁ!と今更気付きました。 :lol: 

ということで、対策。

Apache からは、 X-Forwarded-For ヘッダで、アクセス元の IP が通知されているので、Nginx のほうでそれを REMOTE_ADDR にアサインすれば OK です。

- [[Module ngx_http_realip_module:http://nginx.org/en/docs/http/ngx_http_realip_module.html]]

server ディレクティブで

 set_real_ip_from 192.168.x.x;
 real_ip_header X-Forwarded-For;

ってして Nginx を再起動すれば OK :ok: これで REMOTE_ADDR に実サクセス元 IP がセットされるので、Protector, HypCommonFunc のスパム対策が正常に働きます。

あーよかった。 :shy: 

リバースプロキシで転送している場合は、REMOTE_ADDR を正しくセットしないと XOOPS でのスパム対策が意味を成さないから気をつけましょうというお話でした。

RIGHT:&font(90%){&page_comments;};
#navi

« Prev[3]