具体流程
当配置多个 DNS 服务器时,NGINX 会按顺序依次尝试每一个服务器:
- 优先使用第一个 DNS 服务器:在每次新请求解析时,NGINX 会从第一个 DNS 服务器开始。
- 切换到下一个服务器:如果第一个服务器解析超时或失败,NGINX 会自动尝试使用下一个 DNS 服务器。
- 轮询机制:NGINX 按顺序依次尝试所有配置的服务器,直到找到一个可以成功解析的服务器。
- 最终失败:如果所有配置的 DNS 服务器都失败,则该 DNS 解析请求最终失败。
重试机制的配合
NGINX 的重试机制会在一个 DNS 服务器失败时尝试下一个,直到循环完所有 DNS 服务器。如果重试间隔(resend_timeout
)到期且请求仍未成功,解析器事件会被重新触发,继续执行下一轮尝试,直至达到配置的最大重试次数或缓存过期。
总结
当多次重试之后,所有 DNS 服务器都无法解析时,NGINX 会最终返回解析失败。