nginxで高負荷時に「upstream timed out (110: Connection timed out) 」とかエラーがでる

nginx

■nginxで稀にエラーが発生して500系のエラーがでる

以下のようなエラーメッセージが吐き出されていました。APIサーバで発生していたので、結構たくさんのアクセス(1秒間に1500~2000アクセス)あったときに本当に稀に出ていました。

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

 

どうにも、バックエンドのphp-fpmに接続して、戻りを待っているときにタイムアウトが発生してnginx側から接続を切っているようでした。一旦タイムアウトの時間を伸ばして対応することにしました。

 

■暫定対応

以下の設定をnginxの設定のところに追加しています。60秒がデフォルトでタイムアウトが発生していたようですね。一旦、暫定対応で時間を伸ばします。

fastcgi_read_timeout 120;

 

根本的に時間がかかっていたり、php-fpmへの接続がうまく行かなかったりしているのでもっとチューニングが必要そうですね。