2026年5月26日
2026年5月26日
Nginxのupstream keepaliveを設定する方法
はじめに
Nginxは、高可用性とパフォーマンスを重視したWebサーバーです。upstream keepalive機能を利用することで、接続が再利用されるため、サーバーへの負荷が軽減され、応答時間を短縮し、全体的な性能向上につながります。
症状・背景
Nginxで複数のバックエンドサーバーをハーモニーやロードバランシングする際に、毎回新しい接続を開くとパフォーマンスが低下します。upstream keepalive機能を使用することで、既存の接続を利用できるため、より効率的にリクエストを処理することができます。
手順・設定方法
ステップ1: upstream keepalive を有効にする
# Nginxの配置ファイル(通常は /etc/nginx/nginx.conf または /etc/nginx/conf.d/ ディレクトリ下)を開く
sudo nano /etc/nginx/nginx.conf
# http セクション内に以下のように追加する
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
keepalive 65; # 接続を保持する秒数
keepalive_requests 1000; # 保持される接続の最大リクエスト数
}
}
ステップ2: カスタマイズ
# 必要に応じて、keepalive パラメータを調整する
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
keepalive 60; # 接続を保持する秒数(60秒)
keepalive_requests 500; # 保持される接続の最大リクエスト数(500回)
}
}
ステップ3: 設定を適用
# Nginx の設定ファイルを再読み込みする
sudo nginx -t
sudo systemctl reload nginx
ステップ4: 監視とトラブルシュート
# Nginx のログを確認する
tail -f /var/log/nginx/error.log
# もしくは
journalctl -u nginx.service -f
注意事項
- keepalive_requests を増やすことで接続の再利用回数を増やし、パフォーマンスを向上させますが、同時にリソース消費も増加します。
- 環境によっては、keepalive_time の設定値を調整する必要がある場合があります。
- 保持された接続が問題を引き起こす場合は、keepalive_requests を減らし、接続の再利用回数を制限することでトラブルシュートできます。
まとめ
1. upstream keepalive: Nginx の upstream ブロック内で有効化します。
2. keepalive_time: 接続を保持する時間(秒)を設定します。
3. keepalive_requests: 同じ接続で処理できるリクエストの最大数を設定します。
4. パフォーマンス向上: 接続の再利用により、サーバーへの負荷を軽減し、応答時間を短縮します。
5. 監視とトラブルシュート: Nginx のログを確認することで問題を把握し、必要に応じて設定を調整します。
関連記事: