高トラフィック時の 502-504 エラーを回避するには、次の重要な NGINX 設定に注目してください。
1. ワーカー プロセスと接続:
- `worker_processes`: ワーカー プロセスの最適な数が CPU コアの数と一致することを確認します。トラフィックが多い場合は、「worker_processes」を「auto」に設定して、NGINX が最適な値を自動的に決定できるようにします[1][2][5]。
- `worker_connections`: 各ワーカー プロセスが同時に処理できる接続の最大数を増やします。トラフィックが多い場合は、「worker_connections」を 4096[1][2][5] などのより高い値に設定します。
2. タイムアウトとアイドル時間:
- `keepalive_timeout`: キープアライブ接続が効率的に利用されるように、これを平均応答時間に近い値に設定します。トラフィックが多い場合は、「keepalive_timeout」を 10 秒などの低い値に設定します[1][2][5]。
- `client_header_timeout`: クライアント要求ヘッダーの処理とサーバー リソースの使用率のバランスをとる値に設定します。トラフィックが多い場合は、「client_header_timeout」を 10 秒などの低い値に設定します[1][2][5]。
3. FastCGI 設定:
- `fastcgi_buffer_size`、`fastcgi_buffers`、`fastcgi_busy_buffers_size`、および `fastcgi_temp_file_write_size`: これらの設定を微調整して、PHP 処理を最適化し、502 エラーの可能性を減らします[3][5]。
4. キャッシュと圧縮:
- `gzip on`: gzip 圧縮を有効にして、帯域幅の使用量を削減し、ページの読み込み時間を短縮します[3][5]。
- `open_file_cache` と関連設定: サーバーの負荷と遅延を軽減するために、定期的にアクセスされるファイルのキャッシュを実装します[5]。
5. 監視とトラブルシューティング:
- アクセス ログを定期的に監視して、パフォーマンスのボトルネックを特定し、問題のトラブルシューティングを行います[4][5]。
これらの設定を最適化すると、高トラフィック時の 502 ~ 504 エラーの可能性を最小限に抑え、NGINX サーバーがリクエストを効率的に処理できるようになります。
引用:[1] https://www.freshblurbs.com/blog/2015/11/28/high-load-nginx-config.html
[2] https://www.webhi.com/how-to/optimize-nginx-configuration-for-high-traffic-websites-busy-server/
[3] https://phpenterprisesystems.com/web-servers/215-example-nginx-configuration-for-high-traffic-high-load-php-web-sites
[4] https://blog.martinfjordvald.com/optimizing-nginx-for-high-traffic-loads/
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-performance/optimizing-nginx-high-traffic-websites