April 22, 2013

Nginxのプロキシ先のApacheでクライアントのIPアドレスをアクセスログに出力する

mod_rpafを使うと出来るっぽかったので、やってみました。Ubuntu上で確認しています。


1. libapache2-mod-rpafをインストールします。
$ sudo apt-get install libapache2-mod-rpaf
$ sudo a2enmod rpaf
$ sudo service apache2 restart
2. http://wiki.nginx.org/FullExample の proxy_conf の通りに /usr/local/nginx/conf/proxy.conf を作成します。
proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;
3. http://wiki.nginx.org/FullExample の nginx.conf のように proxy.conf を include します。

4. 3までを行なって反応しなかったので /etc/apache2/mods-enabled/rpaf.conf に以下の変更を行いました。(Apacheの再起動も併せて。)
<IfModule mod_rpaf.c>

<IfModule mod_rpaf-2.0.c>
に変更。

参考:
http://serverfault.com/questions/393207/mod-rpaf-problems-with-nginx-front-apache-back-end-after-ubuntu-upgrade

No comments:

Post a Comment