uwsgi_read_timeout

Устанавливает таймаут на чтение ответа от сервера uWSGI в NGINX. — NGINX HTTP Core

uwsgi_read_timeout
httpserverlocation
Синтаксисuwsgi_read_timeout time;
По умолчанию60s
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

`uwsgi_read_timeout` задаёт длительность, в течение которой NGINX будет ожидать ответа от сервера uWSGI. Если сервер не ответит в этот срок, NGINX закроет соединение и вернёт клиенту ошибку. Этот параметр особенно полезен для приложений, которые могут дольше обрабатывать запросы, поскольку он предотвращает бесконечное удержание соединений NGINX открытыми. Значение таймаута можно задавать в различных форматах времени, например секундах, минутах или в более мелких единицах, таких как миллисекунды. Основное назначение — повысить производительность, избегая долгих ожиданий при неотзывчивых бэкендах. Администраторы могут настраивать этот лимит времени по-разному для разных контекстов, задавая директиву в блоках `http`, `server` или `location`, что обеспечивает гибкость в соответствии с конкретными требованиями. Если будет превышен лимит `uwsgi_read_timeout`, NGINX вернёт ошибку 504 Gateway Timeout, сообщая клиенту, что соединение было разорвано из-за того, что сервер uWSGI не ответил в отведённое время. Поэтому рекомендуется проанализировать время отклика приложения и установить это значение так, чтобы найти баланс между предоставлением достаточного времени на обработку и недопущением чрезмерного ожидания со стороны клиентов.

Пример конфига

location /app {
    include uwsgi_params;
    uwsgi_pass unix:/path/to/socket;
    uwsgi_read_timeout 30s;
}

Если установить этот таймаут слишком низко, это может привести к тому, что действительные запросы будут завершаться с ошибкой, если приложение отвечает дольше.

Если не настроить его внимательно, клиенты могут столкнуться с таймаутами при длительных запросах при отсутствии надлежащей обработки ошибок.