Haproxy
HaProxy 解析器是否有任何預設名稱伺服器?
我使用 HaProxy 將流量轉發到具有 dns 名稱而不是網路地址的後端伺服器:
backend default-backend server external somedomain.com:80
問題是存在無法解決的情況。在這種情況下,HaProxy 說:
伺服器預設後端/外部正在關閉以進行維護(DNS NX 狀態)。剩下 0 個活動伺服器和 0 個備用伺服器。0 個會話處於活動狀態,0 個已重新排隊,0 個仍在隊列中。後端預設後端沒有可用的伺服器!
我希望 HaProxy 再次檢查 DNS 解析,並在目標 DNS 名稱再次可解析時開始轉發流量。問題是我必須聲明
resolvers
部分和至少一個nameserver
可以解決這樣的地址的部分:resolvers rslvr nameserver dns0 8.8.8.8:53
如果我不想聲明任何解析器怎麼辦?我只想讓 HaProxy 在啟動時檢查 DNS 解析。是否可以?
如果我不使用解析器,後端將停止工作並且不會檢查此域是否再次可用。當我沒有任何
nameserver
inresolvers
部分時,也會發生同樣的事情。有什麼方法可以省略顯式
nameserver
聲明,或者使用 HaProxy 在啟動時使用的一些預設解析器?
haproxy 1.9 版為解析器部分引入了一個新參數,無需手動列出名稱伺服器。
parse-resolv-conf
有關更多資訊,請參閱他們的文件,但本質上這允許您替換
resolvers mydns nameserver dns1 10.0.0.1:53 nameserver dns2 10.0.0.2:53 hold valid 10s
和
resolvers mydns parse-resolv-conf hold valid 10s
假設您的 resolv.conf (當您沒有解析器部分時由 haproxy 讀取)配置了 10.0.0.1:53 和 10.0.0.2:53 。