resolver
NGINX 中的 'resolver' 指令启用对代理请求的 DNS 解析,使用外部解析器。
Proxy-Wasm support for Nginx powered by wasmtime
语法resolver address [address ...] [valid=duration] [timeout=duration];
默认值none
上下文
参数1+
说明
'resolver' 指令配置 NGINX 在处理客户端请求时用于解析主机名的 DNS 解析器。该指令可以接受一个或多个 DNS 服务器地址,这些地址可以以 IPv4 和 IPv6 格式指定。'resolver' 可在 'main' 或 'server' 上下文中指定,NGINX 将使用所定义的解析器来解析在诸如 'proxy_pass' 或 'fastcgi_pass' 等指令中指定的任何主机名。当提供多个解析器时,NGINX 会按指定顺序尝试使用它们解析主机名。如果第一个解析器失败,则会继续使用下一个。这为 DNS 解析提供了鲁棒性和灵活性,尤其适用于需要冗余的环境。
此外,'resolver' 指令可以接受可选参数,例如 'valid' 和 'timeout',它们分别控制已解析地址的有效期和 DNS 查询的超时时长。这些参数有助于微调 DNS 解析过程的行为,确保在运行时依赖主机名解析的应用具有高可用性和性能。如果未定义解析器但需要解析主机名,NGINX 将返回错误,因此该指令对于依赖动态后端主机的配置至关重要。
配置示例
resolver 8.8.8.8 8.8.4.4;
location /app {
proxy_pass http://mybackend;
}⚠
确保指定的 resolver 地址可以从您的 NGINX 服务器访问;否则,名称解析将失败。
⚠
使用配置不当的 DNS resolver 可能导致延迟问题并使您的应用响应变慢。
⚠
如果未设置默认 resolver 且您尝试解析 hostname,NGINX 将返回 '502 Bad Gateway' 错误。