エラー原因と対応方法|Nginx|タイムアウトエラーが発生|[error] 99#99: *999 upstream timed out (110: Connection timed out) while reading response header from upstream



エラー原因と対応方法


事象

Nginx でタイムアウトエラーが発生して、エラーログに下記のログが出力された。

・エラー

YYYY/MM/DD hh:mm:dd [error] 99#99: *999 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 99.99.99.999, server: , request: "GET /xxx/yyy HTTP/1.1", upstream: "http://xxx/yyy", host: "99.99.99.999", referrer: "http://xxx/yyy"

原因

Nginx から後続へ渡したデータを処理して Nginx にレスポンスを返すのに時間がかかってタイムアウト設定時間を超えたため、タイムアウトエラーが発生した。Nginx の proxy_read_timeout の設定時間を超えると、このエラーが発生する。


対応方法

この事象を Nginx のタイムアウトの設定で対応する場合は、nginx.conf に proxy_read_timeout を大きくした時間で設定する。

また、proxy_read_timeout 以外にも、タイムアウトの設定には、proxy_connect_timeout、proxy_send_timeout の 2 つがあるため、これも設定しておいたほうがよい。


・nginx.conf

/etc/nginx/nginx.conf


例えば、nginx.conf で下記のようにタイムアウトの時間を設定する。これは、300 秒で設定している。


http {
    
    ...省略...
    
    proxy_connect_timeout 300;
    proxy_send_timeout    300;
    proxy_read_timeout    300;

    ...省略...
}


proxy_connect_timeout:Nginx から後続へのコネクションを張るタイムアウト時間

proxy_send_timeout:Nginx から後続に対してデータ送信する際のタイムアウト時間

proxy_read_timeout:Nginx から後続へ渡したデータを処理して Nginx にレスポンスを返す時間のタイムアウト時間




スポンサーリンク

0 件のコメント :

コメントを投稿