resolver_add
resolver_add 指令允许在 NGINX Proxy-Wasm 模块上下文中向指定集合添加 DNS 解析器地址。
Proxy-Wasm support for Nginx powered by wasmtime
·
httpserverlocation
语法resolver_add address resolver_name;
默认值none
上下文http, server, location
参数2
说明
resolver_add 指令是 NGINX 的 Proxy-Wasm 模块的核心部分,特别适用于需要动态 DNS 解析的场景。该指令允许配置多个 DNS 解析器地址,这些地址在 WebAssembly 过滤器执行时会被使用。通过指定这些解析器,可以确保你的 WASM 模块能够动态解析主机名,从而增强你的 HTTP 服务器或代理的能力。
由 resolver_add 指令添加的每个解析器地址会根据上下文被使用。该指令可用于诸如对外发代理请求的主机名解析,或处理涉及以域名标识的后端服务的客户端请求等操作。它提供的灵活性在现代应用架构中尤为重要,因为微服务可能会动态变化,有效的名称解析对于路由决策或服务间通信可能是必要的。
该指令接受两个参数:解析器地址,通常以 DNS 服务器接受的格式给出(例如 IP 地址);以及一个可选参数,用于指定有效的解析器名称。理解如何构造这些参数对于正确配置至关重要,并可确保你的 WebAssembly 模块在处理阶段能高效地解析所需地址。
配置示例
http {
resolver 8.8.8.8 valid=30s;
resolver_add 8.8.4.4 additional_resolver;
}⚠
确保 resolver 地址可以被 NGINX 服务器访问;否则,name resolution 将失败。
⚠
DNS resolver 名称配置错误可能导致 WebAssembly 模块解析出现意外行为。
⚠
在未先指定主 resolver 的情况下添加 resolver 可能会导致 resolution 优先级混淆。