doh_timeout

Устанавливает таймаут для DNS-over-HTTPS-запросов в миллисекундах.

Синтаксисdoh_timeout time;
По умолчанию5000
Контекстlocation
Аргументы1

Описание

Директива 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-блоке; в противном случае она может не вступить в силу.

← Ко всем директивам