Nginx応用編②リバースプロキシとして動かす(前編)。Linuxサーバ構築手順まとめ
Apacheの設定を変更する
次に、Apacheの設定を変更しておきます。
# vi /etc/httpd/httpd.conf
待ち受けポート番号を変更します。
# Listen 80 ←コメントアウト Listen 8080
バーチャルホストを切っておきます。
NameVirtualHost 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> ServerAdmin webmaster@virtual1.com DocumentRoot /var/www/html/virtual1 ServerName virtual1.com ErrorLog logs/virtual1-error_log CustomLog logs/virtual1-access_log common </VirtualHost>
変更が完了したら、Apacheを再起動しておきましょう。
# /etc/init.d/httpd stop # /etc/init.d/httpd start
VirtualHostのドキュメントルートにわかりやすいようにindex.htmlを作成しておきます。
<html> <head></head> <body>VirtualHost1</body> </html>
動作を確認する
ここまでできたらブラウザでアクセスしてみます。
アクセスする前に、次のように2つのログファイルをtailコマンドで開いておくとわかりやすいです。
# tail -f /var/log/httpd/virtual1-access_log # tail -f /var/log/nginx/access_log
それではブラウザでアクセスしましょう。
http://[IPアドレス]/index.html
Nginxのアクセスログと、Apacheのアクセスログにアクセス情報が書き込まれます。
Nginxのアクセスログ:
172.16.0.3 – – [03/Nov/2014:16:47:45 +0900] “GET / HTTP/1.1” 200 79 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36” “-”
Apacheのアクセスログ:
127.0.0.1 – – [03/Nov/2014:17:17:59 +0900] “GET / HTTP/1.0” 200 79
再び、ブラウザでアクセスしてみます。
Nginxのアクセスログ:
172.16.0.3 – – [03/Nov/2014:17:19:06 +0900] “GET / HTTP/1.1” 304 0 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36” “-”
Nginxのアクセスログにはログが書き込まれますが、Apacheのアクセスログには何も書き込まれません。
つまり、Nginxにキャッシュされたコンテンツのみ参照され、Apacheの方での処理は行われていないということになります。
キャッシュファイルは実際に作成されているでしょうか。
先ほど設定したproxy_cache_pathのディレクトリを見てみましょう。
# cd /var/cache/nginx/proxy_cache/ # tree . `-- 2 `-- f7 `-- eeeeeee0d485aca6abfca0ebb34567872
キャッシュファイルが出来上がっています。
これで、リバースプロキシとしてNginxを動作させることができたことになります。
今回のまとめ
今回はNginxをリバースプロキシとして動作させる設定方法を説明してきました。
ここでApacheのアクセスログを思い出してみたいのですが、アクセス元のIPアドレスが「127.0.0.1」になっていました。つまり、全てのアクセスがNginxからのアクセスになっているのです。これはリバースプロキシの挙動としては問題ないのですが、アクセスログには本来アクセスのあったIPアドレスを保存したかったりもしますよね。次回はそのあたりの設定を見ていきたいと思います。