自訂 App Service DNS Server

  • 257
  • 0

透過 App Service 上執行網站的時候,有時候可能會需要透過私有的 DNS Server 來解析特定的網址,這時候可以透過一些簡單的設定就可以完成這樣的需求,後面就來介紹兩個方式來完成這需求。

實做

假設 App Service 是有整合虛擬網路的話,可以透過在虛擬網路上設定 DNS 就可以完成這一個需求,設定 App Service 整合虛擬網路的方式可以參考之前的文章「解決 App Service 無法在基本和標準定價層整合虛擬網路問題」。

首先在設定前先確認一下 DNS Server,在 App Service 主控台的透過公用工具 nameresolver 來查詢網址,這時候 Server 是預設的位址。

在 Windows App Service Plan 使用 nslookup 的話會永遠只回覆 168.63.129.16 這一組 Azure 上面特殊的 IP,要查詢 DNS 要用 nameresolver 才會看到真正生效的設定

這時候到虛擬網路的 DNS 伺服器來設定自訂的 DNS Server。

這時候再回去查詢就可以看到生效了,Server 部分就是我們設定的 DNS Server 了。

這時候如果使用 nslookup 來查詢的話,就會如前面說的會還是同樣那一組特殊的 IP,並非我們設定的,這邊要特別注意,不然就會以為設定失敗了,如果是 Linux 的 App Service Plan 則還是可以使用 nslookup 來查詢

如果 App Service Plan 方案不支援虛擬網路整合,且要設定的 DNS Server 非內部網路且不公開的,就可以簡單透過 App Service 組態設定一組環境變數 WEBSITE_DNS_SERVER 即可。

這時候再去確認就可以看到是 App Service 上面環境變數設定的 DNS Server 了。

虛擬網路內的 DNS 設定和 App Service 環境變數同時設定的話,會優先使用環境變數設定的值

結論

假設會需要使用非內部網路內的私有 DNS Server 或是想使用一些常見的公開 DNS Server 可以簡單在 App Service 透過環境變數來設定,如果是要使用在公司內部自行架設或是 Azure Private DNS 的話,就會需要透過虛擬網路整合的方式來使用這些自訂的 DNS Server,本篇針對 App Service 的自訂 DNS Server 方式希望對於大家會有些幫助。

參考資料