В логах ошибки будут выглядеть так:
grep ‘upstream timed out’ /var/log/nginx/error.log
2018/08/13 17:01:03 [error] 32147#32147: *1197966 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 123.123.123.123, server: example.com, request: «POST /api.php/shop.product.update? >
Если такие записи появляются прежде всего нужно установить причины. Возможны два варианта: 1) код так работать не должен — ждет ответа от какого-то недоступного ресурса или базы 2) длительное выполнение ожидаемо.
Во втором случае достаточно увеличить лимиты. Обычно так приходится делать в случае с выгрузками товаров на сайт, которые могут выполняться в течение нескольких часов.
Как исправить ошибку если используется PHP-FPM
Если скрипты выполняет fpm — меняется значение параметра fastcgi_read_timeout 400; (о директиве)
Значение в секундах можно значительно увеличивать, обычно достаточно 400.
location / <
index index.php;
try_files $uri $uri/ =404;
fastcgi_connect_timeout 20;
fastcgi_send_timeout 120;
fastcgi_read_timeout 400;
Лимит может превышаться при длительном выполнении PHP скриптов.
Как исправить ошибку если используется Apache
При проксировании требуется добавить директиву proxy_read_timeout 150;
Значение также как в первом случае задается в секундах и означает лимит времени между операциями чтения.
location / <
index index.php;
try_files $uri $uri/ =404;
proxy_read_timeout 150;
После изменения конфигурации веб-сервер требуется перезапустить командой nginx -s reload.
I’ve a situation where two webservers are setup with nginx as loadbalancer and are backends themselves. Distribution is Debian Wheezy. Config is the same on both servers (Quad-Core with 32GB RAM)
When simulating connections from 3 clients with
in nginx log? An upstream timeout for 600 concurrent connections for a static file!? While running ab test I can see on first backend node:
Практика показывает, что ошибка upstream timed out (110: Connection timed out) может возникать в двух случаях. Причем название самой ошибки указывает на решение — необходимо увеличить время ожидания в настройках веб-сервера.
Nginx в качестве proxy или reverse proxy
В этом случае ошибка может возникать, если истекло время ожидания на чтение ответа от прокси-сервера.
То есть Nginx отправил запрос и не дождался ответа. Если вы уверены, что ваше веб-приложение работает корректно, то необходимо увеличить этот таймаут в файле конфигурации nginx.conf в секции location :
# Установка времени ожидания на отправку и чтение ответа, в секундах
Nginx с подключенными FastCGI-серверами
В этом случае ошибка возникает, если истекло время ожидания на чтение ответа от подключенных сервисов или приложений, PHP-FPM, к примеру.
Решение такое же банальное, как и в первом случае — необходимо увелчить время ожидания:
# Время ожидания на чтение ответа, в секундах
Самое главное
Прежде чем увеличить время ожидания, которое в данном случае по умолчанию составляет 60 с, следует проверить работоспособность всех компонентов и модулей. Если же все работает как нужно, то увеличение таймаута будет самым простым решением проблемы.
Причины и методы исправления ошибки Gateway Timeout, Nginx
Как исправить ошибку Primary script unknown в Nginx
Как решить ошибку upstream sent too big header while reading response header from upstream в Nginx
Причины возникновения ошибки Ошибка 502 bad gateway в Nginx и методы исправления
Ошибка 400 Bad Request возникает, когда клиент отправляет на Nginx неверный запрос. Это случается когда размер заголовков запроса больше допустимого предела.
Как исправить ошибку 405 Not Allowed в Nginx
Ошибка HTTP 413 (Request Entity Too Large Error) означает, что клиент отправил слишком большой запрос на сервер.
Чем вызвана ошибка 500 и как ее исправить в Nginx
Включение и использование log-файлов для проверки работы Nginx
Чем вызвана ошибка PHP: exec(): Unable to fork и как ее исправить
Где находится nginx.conf и пример настроек
Как настроить Nginx + PHP 7
Как включить и использовать сжатие gzip в Nginx
Cache control в Nginx, как настроить и использовать
301 redirect в Nginx’e
Обновление до новой версии Mysql
Распространенные ошибки конфигурации Nginx, подводные камни и лучшие практики
Как собирать статистику Nginx при помощи встроенного модуля и Zabbix
Использование Nginx, как кэширующего сервера
Как построить мини CDN на основе распределенного Nginx кеша
Как настроить Nginx на максимальную эффективность
Настройка Nginx для отдачи статических файлов