具體流程
當配置多個 DNS 服務器時,NGINX 會按順序依次嘗試每一個服務器:
- 優先使用第一個 DNS 服務器:在每次新請求解析時,NGINX 會從第一個 DNS 服務器開始。
- 切換到下一個服務器:如果第一個服務器解析超時或失敗,NGINX 會自動嘗試使用下一個 DNS 服務器。
- 輪詢機制:NGINX 按順序依次嘗試所有配置的服務器,直到找到一個可以成功解析的服務器。
- 最終失敗:如果所有配置的 DNS 服務器都失敗,則該 DNS 解析請求最終失敗。
重試機制的配合
NGINX 的重試機制會在一個 DNS 服務器失敗時嘗試下一個,直到循環完所有 DNS 服務器。如果重試間隔(resend_timeout)到期且請求仍未成功,解析器事件會被重新觸發,繼續執行下一輪嘗試,直至達到配置的最大重試次數或緩存過期。
總結
當多次重試之后,所有 DNS 服務器都無法解析時,NGINX 會最終返回解析失敗。