Nginxをリバースプロキシとして動作させ、WebサーバApacheと連携させます。Linuxサーバ構築手順まとめ
リバースプロキシNginxの設定をしてみよう。
本連載では、Linux上で様々なサーバソフトウェアのインストール手順、操作・設定方法を解説していきます。
嵌まりそうなポイントや細かい部分の説明していきます。Linuxでサーバ構築する際の参考にして下さいね。
今回はNginx応用編第3回です。
Nginxの特徴的な機能の1つとして「リバースプロキシ」として動作するという機能があります。
前回はリバースプロキシとしてNginxを動作させるところまでを設定しました。
しかし前回のリバースプロキシの設定では、Apacheのアクセスログで、アクセス元のIPアドレスが全て「127.0.0.1」になってしまっていました。つまり、全てのアクセスがNginxからのアクセスになっているので、アクセスログには本来アクセスのあったIPアドレスが保存できていない状態です。
今回は、本来のアクセス元IPアドレスをログに出力する方法を見ていきます。
mod_rpafの追加
アクセス元のIPアドレスをログに出力するために、Apacheのモジュール「mod_rpaf」が必要になります。mod_rpafをインストールし、アクセスログを確認していきましょう。
# cd /usr/local/src # 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 # apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
apxsコマンドは「APache eXtenSion」の略で、Apacheモジュールを動的に追加する際に使用するコマンドです。オプションの意味としては、
i:インストール
c:コンパイル(.soファイルが生成される)
n:モジュール名の指定
です。
これによってmod_rpaf.soができるはずです。
# ls /etc/httpd/modules
→モジュール「mod_rpaf.so」が追加されていることを確認しましょう。
次に、mod_rpaf用の設定ファイルを作成します。
# vi /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
RPAFheader X-Forwarded-For
最後にApacheを再起動します。
# service httpd stop # service httpd start
これでインストールは完了です。
ブラウザからアクセスし、アクセスログを確認してみましょう。
192.168.1.162 - - [19/Jan/2015:12:00:35 +0900] "GET / HTTP/1.0" 200 79
アクセス元のIPアドレスが127.0.0.1ではなくなっていることがわかります。
今回のまとめ
今回はNginxをリバースプロキシとして動作させた際の設定について説明しました。
Apacheとの連携が必要になってくる点がポイントで、Apacheのモジュール追加方法がわかっているとすんなりできますが、「apxs」は使ったことがないとちょっと分かりづらいでしょう。
他のモジュール追加にも使えるので、この機会に覚えておきましょう。