resolver

Директива 'resolver' в NGINX обеспечивает разрешение DNS для проксированных запросов с использованием внешнего resolver.

Синтаксисresolver address [address ...] [valid=duration] [timeout=duration];
По умолчаниюnone
Контекст
Аргументы1+

Описание

Директива 'resolver' настраивает DNS-резолвер, который NGINX использует для разрешения имён хостов при обработке клиентских запросов. Эта директива может принимать один или несколько адресов DNS-серверов, которые можно указать как в формате IPv4, так и в формате IPv6. resolver может быть задан в контексте main или server, и NGINX будет использовать определённый резолвер для разрешения любых имён хостов, указанных в директивах, таких как 'proxy_pass' или 'fastcgi_pass'. Когда указано несколько резолверов, NGINX будет пытаться разрешать имена хостов, обращаясь к ним в указанном порядке. Если первый resolver не отвечает, NGINX перейдёт к следующему. Это обеспечивает надёжность и гибкость в разрешении DNS, особенно в средах, где важна избыточность.

Кроме того, директива 'resolver' может принимать дополнительные параметры, такие как 'valid' и 'timeout', которые контролируют, как долго разрешённый адрес остаётся действительным и длительность таймаута для DNS-запросов соответственно. Эти параметры помогают тонко настроить поведение процесса разрешения DNS, обеспечивая высокую доступность и производительность приложений, которые полагаются на разрешение имён хостов во время выполнения. Если resolver не задан, а требуется разрешение имени хоста, NGINX вернёт ошибку, что делает эту директиву критически важной для конфигураций, зависящих от динамических бекендов.

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

resolver 8.8.8.8 8.8.4.4;  
location /app {  
    proxy_pass http://mybackend;  
}

Убедитесь, что указанные адреса резолвера доступны с вашего сервера NGINX; в противном случае разрешение имён не будет работать.

Использование плохо настроенного DNS-резолвера может привести к задержкам и замедлению отклика вашего приложения.

Если не задан резолвер по умолчанию и вы попытаетесь разрешить имя хоста, NGINX вернёт ошибку '502 Bad Gateway'.

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