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 のログを確認することで問題を把握し、必要に応じて設定を調整します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ