js_fetch_timeout
Задает таймаут для получения ответов в JavaScript-модуле NGINX.
Описание
Директива js_fetch_timeout используется для задания максимального времени ожидания в миллисекундах, которое JavaScript-модуль NGINX (NJS) будет ждать завершения операции fetch. Это важно при выполнении асинхронных запросов в вашем JavaScript-коде, работающем внутри NGINX, чтобы долговременные запросы не приводили к неотзывчивости сервисов. Таймаут применяется ко всем fetch-запросам, выполняемым из скриптов, использующих модуль njs, что позволяет разработчикам эффективно обрабатывать как успешные, так и ошибочные случаи благодаря управлению временем ожидания.
При установке директивы js_fetch_timeout она принимает один аргумент, определяющий продолжительность таймаута в миллисекундах. Если операция fetch не завершится в указанный период, NGINX автоматически завершит запрос, предотвращая дальнейшую обработку и позволяя корректно обрабатывать ошибки в ваших NJS-скриптах. Это помогает управлять производительностью и использованием ресурсов в приложениях, где критично своевременное получение ответов, например в API-ориентированных средах.
Важно отметить, что эту директиву можно настроить в контекстах stream и stream server, что делает её универсальной для разных конфигураций сервера. Таймауты следует задавать в соответствии с ожидаемой сетевой задержкой и характеристиками производительности бэкенд-сервисов, к которым обращаются через операции fetch.
Пример конфига
js_fetch_timeout 5000;
Убедитесь, что значение таймаута установлено правильно; слишком низкое значение может привести к отказу действительных запросов.
Директива применяется только к операциям получения и не влияет на другие таймауты запросов, определённые в NGINX.
Значения должны задаваться в миллисекундах.