nginxで訪問者のIPをリバースプロキシから後ろのサーバーへ渡す設定

自サーバーをいじっていたら休みが終わってました。コンバンハころすけ(@wg_koro)です。

nginx

このWordPressはnginxfastcgiの組み合わせで動いています。で、今日、コメントをつけてくれた方々などのIPが正確に記録できていないのに気づきました。全部ローカルホスト(127.0.0.1)になっちゃってる…。

そういえばIPを後ろのサーバーに渡す設定していなかったや。というわけで設定ファイルの修正となりました。

まずはリバースプロキシ側。

[plain light=”true”]
server {
#(省略)

# ヘッダーに色々付与してあげる
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;

#(以下省略)
[/plain]

続いてサーバー側の設定。

[plain light=”true”]
server {
#(省略)

# リバースプロキシ側でセットしたヘッダーを読むように修正
set_real_ip_from 127.0.0.1;
real_ip_header X-Real-IP;

#(以下略)
[/plain]

これでnginxを再起動すればOK。

そういえば先日nginxを入れ直した際、最新バージョンの1.2.2を入れたんですが途中で「ExtUtils::Embed」が無いよ、と怒られました。以前入れていたのは1.0.xだったんですが、これ必要だったっけかな?

まぁ、下記コマンド一発で入ったので問題無しですが。
$ sudo yum install perl-ExtUtils-Embed

nginxは動作が軽くていいですね。これからは「サーバーは当然nginx」なんて感じになっていくんだろうなぁ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください