nginx 第5話: nginx の高パフォーマンス設定とキャッシュ機能
はじめに
前回はnginx のアクセス制御とエラーハンドリングについて学びました。今回はnginx の高パフォーマンス設定とキャッシュ機能について説明します。
これらの機能は、サーバーの負荷を軽減し、応答速度を向上させるために不可欠です。高パフォーマンス設定では、nginx のコンフィギュレーションやリソースの設定について学びます。一方で、キャッシュ機能では、nginx がキャッシュするデータとその方法について説明します。
高パフォーマンス設定
nginx では、高パフォーマンス設定は worker_processes と worker_connections ディレクティブを使用して行うことができます。例えば、以下のように worker_processes を指定すると、nginx のプロセスの数を制御できます。
http {
# worker_processes は 1 以上の整数で指定します。
worker_processes auto;
# worker_connections は各プロセスが管理する最大接続数です。
worker_connections 1024;
}
また、keepalive_timeout ディレクティブを使用すると、nginx が長時間保持する接続のタイムアウト設定を行うことができます。
http {
keepalive_timeout 65;
}
キャッシュ機能
nginx では、キャッシュ機能は proxy_cache_path ディレクティブを使用して行うことができます。例えば、以下のように /var/cache/nginx にキャッシュディレクトリを作成することができます。
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m max_size=1000m;
server {
listen 80;
server_name example.com;
location / {
# キャッシュを有効にする
proxy_cache my_cache;
proxy_cache_valid 200 302 1d;
proxy_pass http://backend;
}
}
}
また、proxy_cache_bypass ディレクティブを使用すると、キャッシュするデータの条件を指定できます。
http {
server {
listen 80;
server_name example.com;
location / {
# キャッシュを有効にする
proxy_cache my_cache;
proxy_cache_valid 200 302 1d;
proxy_pass http://backend;
# キャッシュの条件を指定する
proxy_cache_bypass $http_cookie;
}
}
}
以上で、nginx の高パフォーマンス設定とキャッシュ機能について学びました。これらの機能は、サーバーの負荷を軽減し、応答速度を向上させるために不可欠です。