doh_timeout
Устанавливает таймаут для DNS-over-HTTPS-запросов в миллисекундах.
Описание
Директива doh_timeout в NGINX используется для указания максимального времени, в миллисекундах, которое сервер должен ожидать ответа от upstream DNS сервера при обработке DNS-over-HTTPS (DOH) запросов. Эта директива играет ключевую роль в определении отзывчивости сервиса DOH, поскольку определяет, сколько времени сервер готов ждать DNS-ответ до истечения таймаута.
Обычно задаётся внутри location block, директива doh_timeout принимает один аргумент, обозначающий период таймаута. Если ответ от upstream DNS сервера превышает указанную длительность, NGINX завершит запрос, позволяя ему обрабатывать другие запросы и не зависать из‑за медленных DNS-ответов. Таймаут можно настраивать в зависимости от конкретных потребностей приложения и ожидаемой производительности upstream DNS сервера.
По умолчанию, если не указан, таймаут установлен в 5000 миллисекунд (5 секунд). Это даёт некоторую гибкость: администраторы могут уменьшить значение для более быстрого переключения при ошибках или увеличить его при взаимодействии с медленными DNS-серверами. Однако слишком большой таймаут может привести к неэффективной обработке запросов, особенно при высокой нагрузке.
Пример конфига
location /dns-query {
doh;
doh_timeout 2000;
}Если значение установлено слишком низким, это может привести к частым таймаутам, если upstream DNS server отвечает медленно.
Убедитесь, что значение таймаута указано в миллисекундах; путаница с секундами может привести к непредвиденному поведению.
Крайне важно задать эту директиву в правильном location-блоке; в противном случае она может не вступить в силу.