nginx の原因と対処

nginx コンテナのログに記録されるエラーから、原因と対処を調べます。

upstream timed out

観測される症状・影響

ブラウザアクセスがタイムアウトする、または 502/504 などのエラーになります。

主なエラーメッセージ

upstream timed out (110: Operation timed out) while reading response header from upstream

ログのサンプルエントリ

2024/09/11 20:01:43 [error] 23#23: *870 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.0.0.2, server: 0.0.0.0, request: "GET /process?is_active=True&... HTTP/1.1", upstream: "uwsgi://10.0.2.29:8000", host: "10.20.47.11"
10.0.0.2 - - [11/Sep/2024:20:01:43 +0900] "GET /process?is_active=True&... HTTP/1.1" 504 569 "https://10.20.47.11/process?is_active=True" "Mozilla/5.0 ..." "-"

原因

kompira サービスがダウンしているか応答がない場合、nginx がこの種のエラーを発生させることがあります。

解決策

  1. 特定のコンテナ(kompira)によるリソースの過剰使用が考えられます。Docker コンテナで利用のリソース状況の確認 を確認してください。
  2. 特定のコンテナ(kompira)が停止された可能性があります。コンテナの正常性確認 を確認してください。
  3. コンテナやリソースは正常で、大きなエクスポートや重いクエリなど処理自体が正当に長い場合は、タイムアウトの延長を検討してください(特定の重い操作が一定時間で失敗する(タイムアウト))。