![端口后的路径上服务的 DNS 记录](https://linux22.com/image/689460/%E7%AB%AF%E5%8F%A3%E5%90%8E%E7%9A%84%E8%B7%AF%E5%BE%84%E4%B8%8A%E6%9C%8D%E5%8A%A1%E7%9A%84%20DNS%20%E8%AE%B0%E5%BD%95.png)
我正在尝试找出提供IP:PORT/SOMEPATH
DNS 条目的方法。例如,我们有多个服务作为 URLIP:PORT/APP1, IP:PORT/APP2
等。我可以使用 DNS 为这些服务设置别名吗?
看起来 A 记录仅适用于IP
,并且SRV
记录可用于IP:PORT
:http://www.networksolutions.com/support/how-to-manage-advanced-dns-records/
DNS 是否无法做到这一点?我想问题是,您可以使用某种类型的 DNS 记录为任何有效 URL 设定别名吗?
编辑:这个问题是相关的,但他们特别询问了 CNAME 记录,我想问的是是否有任何记录类型来实现这一点:CNAME DNS 记录可以指向子目录吗
答案1
使用现代 Web 浏览器,您可以使用 DNSCNAME
记录为每个应用服务器赋予一个唯一名称,所有名称均指向您的 Web 服务器。然后,Web 服务器将根据Host:
浏览器传入的 HTTP 标头(在 apache 中为ServerAlias
指令)使用虚拟主机。
虽然 DNS 确实有一种URI
记录类型,但我不知道它的实施范围有多广。
答案2
DNS 仅将名称映射到 IP,因此您不能映射协议、端口或路径。
实现所需操作的正常方式是设置虚拟主机。Web 服务器会查看客户端发送的“Host”请求标头的内容,并将请求定向到正确的应用程序。然后,您只需为每个应用程序创建不同的子域,而不必担心端口。
您不需要指定正在使用哪个 Web 服务器,但 99% 的 Web 服务器都会这样做。
SRV 记录允许您指定运行知名服务的端口,但不能指定任意应用程序。然而,它们并未得到广泛支持(至少 Web 客户端不支持)。