我正在运行多个服务,我想通过一个端口访问它们。为了使类似的事情正常工作,我运行了一个代理服务器,可以根据客户端连接的 URL 重定向客户端。例如,连接到 service1.mydomain.com 的客户端将被重定向到服务 1,而连接到 service2.mydomain.com 的其他客户端将被重定向到服务 2。我想这样做,这样我只需要转发一个端口(出于安全考虑,也为了方便添加/删除服务)。
现在,我有一个指向此服务(子域,我已验证它有效)的 SRV 记录。理想情况下,我想为代理后面运行的任何和所有服务添加指向此 SRV 记录的 CNAME 记录。换句话说,如果此服务的 ip:port 发生变化,我只想更改一条记录,因为它们都使用相同的 ip:port。这可能吗?
Minecraft 是一个很好的展示方式,所以这里这是我所不想要的一个例子。我想将这些服务隐藏在一个端口和目标后面(仅使用一个 SRV 记录),而不是创建多个 SRV 记录。
注意:这些不是 Web 服务。我知道浏览器无法理解 SRV 记录(也不应该理解)。我有一个客户端应用程序,它知道如何从记录中获取端口号。我已经验证了它在此基础上是否有效。
答案1
这可能吗?
不是。CName 是 IN A.Period 的替代名称。它与 SRV 没有任何关联,特别是它是 HOST NAME 解析的一部分。此时以及 DNS 的这一部分中没有端口的概念。
死路。
SRV 记录被固定在系统上,并未集成到 DNS 核心中。