resolver_timeout

`resolver_timeout` 指令在 NGINX 使用 Proxy-Wasm 功能时设置解析 DNS 查询的时间限制。

语法resolver_timeout time;
默认值30s
上下文
参数1

说明

resolver_timeout 指令对于指定 NGINX 的 Proxy-Wasm 模块中 DNS 解析操作允许的最长持续时间至关重要。当 NGINX 被配置为代理时,服务可能需要将域名解析为 IP 地址以正确路由请求。通过设置 resolver_timeout,管理员可以控制 NGINX 在超时之前等待 DNS 服务器响应的时间。这有助于确保请求不会因 DNS 服务器无响应而无限期挂起,从而提高服务的整体响应性和可靠性。

resolver_timeout 的参数以秒为单位定义,并决定任何 DNS 解析过程的超时时间。合理配置的超时时间有助于在可用性和性能之间取得平衡;设置过高可能会延迟错误响应,而设置过低则可能在遇到轻微 DNS 延迟时导致频繁超时。值得注意的是,在高可用性环境中该指令非常重要,因为 DNS 解析问题可能导致服务中断或延迟。

在实践中,resolver_timeout 的合适设置取决于运行时环境和应用的性能要求。建议通过监控 DNS 性能并相应调整超时时间来维护服务的最佳运行。

配置示例

http {
    resolver 8.8.8.8; # Google's public DNS resolver
    resolver_timeout 5s; # set DNS resolver timeout to 5 seconds
    server {
        location / {
            proxy_pass http://example.com;
        }
    }
}

将超时时间设置得过低可能会导致在 DNS 服务器较慢时频繁解析失败。

请确保也正确设置了 resolver 指令;否则,resolver_timeout 将无效。

并非 Proxy-Wasm 运行的所有上下文都会使用 DNS 解析。设置前请确认是否必要。

← 返回所有指令