我正在將我們的應用程式變成更小的服務。我在後端伺服器上新增服務(即不可公開存取),然後在我們的 Web 伺服器的 /etc/hosts 檔案中新增項目。樣本條目
10.160.x.xx newservice.mydomain.com
這種方法有效。但是,如果我從 Web 伺服器測試該服務,我會發現 ping 有效,而不是 nslookup。這樣ping newservice.mydomain.com
就成功了,不nslookup newservice.mydomain.com
為什麼會這樣呢?我怎樣才能讓 nslookup 也能運作?
答案1
nslookup
詢問 DNS 伺服器,它們不知道您的本機hosts
文件,因此它們不會解析其中包含的條目。如果您希望hosts
透過 DNS 查找存取您的文件,則必須使用了解該文件的 DNS 伺服器(例如,systemd-resolved
可以設定為解析該文件)。
然而,這裡使用hosts
條目似乎是多餘的,因為每個計算引擎實例都可以使用預設的 Google 雲端 DNS 伺服器 ( 169.254.169.254
) 進行解析。每個計算引擎的名稱是[INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
(有關內部 DNS 的更多信息,請參見此處),因此您應該能夠透過該名稱存取您的伺服器。