On Thu, Jun 15, 2017 at 05:21:38PM +0300, Алексанр Платонов wrote: > У меня есть ~30 хостов в 3-х разных ДЦ. Nginx принимает нагрузку и > распределяет её по алгоритму WRR на php-fpm пулы, расположенные на этих же > хостах. > > Периодически, примерно 1/5000 (ошибка к общему кол-ву запросов) на > случайном хосте получает ошибку: > front14 2017/06/15 15:37:40 [error] 13063#13063: *2446289 upstream timed > out (110: Connection timed out) while connecting to upstream, client: > 217.69.135.0, server: site, request: "GET > /files/images/1284_1284/58/b4/58b455be4b559395714059e5.jpg > HTTP/1.0", upstream: "fastcgi://217.69.137.52:8081", host: "site" > > после получения ошибки nginx проксирует запрос на другой сервер и там все > отрабатывает нормально. > > front14 217.69.135.0 - - [15/Jun/2017:15:37:41 +0300] "GET > /files/images/1284_1284/58/b4/58b455be4b559395714059e5.jpg HTTP/1.0" 200 > 139517 "-" "okhttp/3.4.1" "-" request_time: 1.660 upstream_addr: > 217.69.137.52:8081, 217.69.137.51:8081 upstream_response_time: 0.677, 0.981 > upstream_status: 504, 200 upstream_cache_status: - "tid:" > 13063-1497530259.494-217.69.135.0-163-2446289 ... > Снимал несколько раз tcpdump и наблюдал следующую картину: > 1) хост с nginx послылает FIN на бэкенд сразу после своего же ACK бэкенду > через 13ms, не пересылая данные вообще.
Это совсем не похоже на таймаут. Возможно, перепутаны коннекции в дампе, проверьте номера портов и tcp seq. > 2) хост с nginx посылает RST через 10 мкс после получения SYN, ACK от > бэкенда и через ~ 780 мкс от своего SYN. А это похоже на таймаут коннекта. Вопрос в том, почему SYN+ACK от бэкенда пришёл с такой задержкой. Возможно, бэкенд перегружен. Возможно, свитчи по пути перегружены трафиком. > Не понятно почему при настройке nginx fastcgi_connect_timeout 300ms; в логе > вижу upstream_response_time: 0.677 секунды. Есть этому объяснение? Коннект это одно, а ожидание ответа бэкенда ПОСЛЕ завершения коннекта это другое. Можно сконнектиться, послать запрос и долго ждать ответа. -- Eugene Berdnikov _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
