我正在将我们的应用程序拆分成更小的服务。我在后端服务器(即不对外开放)上添加新服务,然后在我们的 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 的更多信息请参见此处),因此您应该能够通过该名称访问您的服务器。