2026年5月23日

2026年5月23日

Nginxのパフォーマンスチューニング完全ガイド

はじめに

Nginxは高いパフォーマンスと低リソース消費を特徴とするWebサーバーであり、多くのウェブサイトで利用されています。しかし、デフォルト設定では最大限の性能を発揮していないかもしれません。このガイドでは、基本的なチューニングから高度な設定までを網羅し、Nginxを高速なサーバーへと変える方法を詳しく解説します。

症状・背景

このテーマが必要になる主な場面は以下の通りです:

  • ウェブサイトの遅延: サーバーに負荷がかかり、ユーザーからのレスポンスタイムが長引く場合
  • 高頻度のアクセス: 大量のトラフィックを受け付け、サーバーのパフォーマンスが低下する場合
  • リソース利用率が高い: メモリやCPU使用率が非常に高い状況で、サーバーのパフォーマンスが影響を受ける場合
  • SSL接続数制限: SSL/TLS接続数が制限され、接続が断切られることが多い場合

手順・設定方法

ステップ1: 基本操作のサブタイトル

# Nginxの設定ファイルを編集します。
sudo nano /etc/nginx/nginx.conf

# 必要な設定を行います。

ステップ2: 主要オプション/設定

# タイムアウト値を調整します。接続タイムアウトは通常5秒、読み取りタイムアウトは30秒に設定するのが推奨です。
http {
    # 接続タイムアウト
    keepalive_timeout 5s;

    # 読取りタイムアウト
    send_timeout 30s;
}

# クライアントの接続数制限を設定します。この値は通常、サーバーのCPUやメモリに依存します。
http {
    client_body_buffer_size 128k;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 16k;
    client_max_body_size 8m;

    # クライアント接続数制限
    keepalive_requests 100;
}

ステップ3: 应用/組み合わせ

# ロードバランシングの設定を追加します。複数のサーバー間で負荷を分散させることが重要です。
http {
    upstream backend {
        server 192.168.1.10;
        server 192.168.1.11 backup;
    }

    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

# キャッシュ設定を追加します。頻繁にアクセスされるコンテンツはキャッシュすることで、負荷を軽減できます。
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        location /cache/ {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
        }
    }
}

ステップ4: 実践/トラブルシュート/監視

# Nginxの設定を再読み込みします。
sudo systemctl reload nginx

# タイミング情報を取得するために、Nginxのログファイルを確認します。
tail -f /var/log/nginx/access.log

注意事項

  • セキュリティ上の注意: 設定を変更する前に、必ずバックアップを作成してください。また、設定が正しいものであることを確認し、適切なアクセス許可を設定することをお勧めします。
  • パフォーマンス/運用上の注意: 設定の影響を把握するために、監視ツールを使用してパフォーマンスを追跡しましょう。定期的に設定を見直し、必要に応じて調整することが重要です。

まとめ

1. タイムアウト値の調整: 接続や読み取り時間に対する適切なタイムアウト値を設定します。

2. 接続数制限: クライアントからの接続数を制限することで、サーバーのリソース利用率を改善します。

3. ロードバランシング: 複数のサーバー間で負荷を分散させることが重要です。

4. キャッシュ設定: 頻繁にアクセスされるコンテンツはキャッシュすることで、パフォーマンスを向上させます。

関連記事:

お気軽にご相談ください

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