この記事は2013/06/19のすごい広島 #5で試したことです。
nginxでapacheにリバースプロキシを設定するとapacheのアクセスログのアクセス元IPが127.0.0.1になってしまいます。
(WordPressへのコメントがついた場合もアクセス元IPアドレスが127.0.0.1になってしまいます)
これを解消するためにはapacheにmod_rpafというモジュールをインストールすると良いらしいので、インストールしてみました。
OS:CentOS 6.4 x64
apache: 2.2系
しかし、調べてみると、mod_rpafの公式サイト(http://stderr.net/apache/rpaf/)で公開されているものはバージョン0.6で更新が止まっており、保守が継続されていないとのこと。
なので、apache 2.2系ではうまく動かないらしいのです。
もう少し調べてみると、apache2.2系でこのmod_rpafを動かせるようにしている方がいましたので、そちらをインストールします。その方のサイト(http://heartbeats.jp/hbblog/2012/03/mod-rpaf.html)の通りでうまくいきました。
rootユーザになって必要なパッケージをインストール
# yum install gcc # yum install httpd httpd-devel
一般ユーザになって以下のようにコマンドを実行する
$ mkdir mod_rpaf-0.6 $ cd mod_rpaf-0.6 $ wget https://raw.github.com/ttkzw/mod_rpaf-0.6/master/mod_rpaf-2.0.c $ sudo /usr/sbin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
これでインストールは完了です
rootユーザで/etc/httpd/conf.d/mod_rpaf.confを作成する。
内容は以下のとおり
LoadModule rpaf_module modules/mod_rpaf-2.0.so RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 10. 172.16. RPAFheader X-Forwarded-For
rootユーザで
# service httpd restart
以上で完了です。
apacheにブラウザでアクセスしてみて、アクセスログのIPアドレスが127.0.0.1ではなくアクセス元のIPアドレスになっていれば成功です。
参考:リーバスプロキシ/ロードバランサとmod_rpaf – インフラエンジニアway – Powered by HEARTBEATS
※nginxの設定で
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;
というヘッダー設定がないと動かないかもしれません。
RSSを取得する