Nginx応用編②リバースプロキシとして動かす(前編)。Linuxサーバ構築手順まとめ
Nginxの設定を変更する
次にNginxの設定ファイルをいじっていきます。
(※今回は変更箇所をできるだけ少なくするようにしています。)
まずはhttpディレクティブ(nginx.conf)を修正します。
# vi /etc/nginx/nginx.conf
次のようにリバースプロキシ用の設定を1行追加します。
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=cache1:15m inactive=7d max_size=1000m;
以下のような別のconfファイルをincludeする記述の手前に追加しましょう。
include /etc/nginx/conf.d/*.conf;
「proxy_cache_path」で、キャッシュファイルを格納するディレクトリを定義します。ディレクトリの後ろに記述されるオプションの説明は以下の通り。
・levels=1:2
levelsオプションは、キャッシュを保存するディレクトリの階層の深さを設定します。親ディレクトリは、定義してある通り「/var/cache/nginx/proxy_cache」ディレクトリに保存されますが、levelsでそのサブディレクトリの階層を定義するのです。
例えばlevels=1とすると、
「/var/cache/nginx/proxy_cache/2/eeeeee0d485aca6abfca0ebb34561f77」
となり、levels=1:2とすると、
「/var/cache/nginx/proxy_cache/2/f7/eeeeee0d485aca6abfca0ebb34561f77」
となります。
・keys_zone=cache1:15m
キャッシュのゾーン名(cache1)を定義します。また、ゾーンのサイズ(15m)も指定する必要があります。このサイズは、後述の「max_size」と、キャッシュする1ファイルの平均サイズから計算して設定します。
・inactive=7d
ここで指定した期間(7日間)アクセスがない場合、そのキャッシュを削除します。
・max_size=1000m
キャッシュの最大値を設定します。
次に、「server」ディレクティブ内の「location」ディレクティブ(default.conf)の記述を変更しましょう。
# vi /etc/nginx/conf.d/default.conf
「location /」ディレクティブに次の記述を追記します。
proxy_pass http://127.0.0.1:8080; proxy_cache cache1; proxy_cache_valid 200 1d;
proxy_pass
Webサーバ(Apache)へのアクセスパスを記述します。
ポート番号を8080にしています。後ほど、このポート番号とApacheのhttpd.confのListenの値を合わせます。
proxy_cache
先ほど定義したproxy_cache_pathのkeys_zoneのゾーン名とこの項目を合わせます。
proxy_cache_valid
httpのレスポンスコードと、そのレスポンスコードを返した際のキャッシュ時間を定義します。上記例の場合、正常レスポンス(200)を返した場合には1日(1day)キャッシュする、という意味になります。
これでNginxの設定は終了です。設定を再読込しておきましょう。
# /etc/init.d/nginx reload