uwsgi_read_timeout
Устанавливает таймаут на чтение ответа от сервера uWSGI в NGINX.
Описание
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;
}Если установить этот таймаут слишком низко, это может привести к тому, что действительные запросы будут завершаться с ошибкой, если приложение отвечает дольше.
Если не настроить его внимательно, клиенты могут столкнуться с таймаутами при длительных запросах при отсутствии надлежащей обработки ошибок.