如何创建指向不同端口号的子域?

Dan*_*any 3 dns port port-forwarding subdomain

在我的用例中,我想创建一个具有主域 IP 地址但端口号不同的子域。例如:

我有abc.com指向的主域192.168.1.1

@              192.168.1.1
Run Code Online (Sandbox Code Playgroud)

我想创建一个端口为 8081 的子域,如下所示,

api.abc.com    192.168.1.1:8081
Run Code Online (Sandbox Code Playgroud)

但看起来这是不可能的。所以我尝试使用以下信息创建一个 SRV 记录,

Name: api
Target: api.abc.com
Protocol: _http
Service: _http
Priority: 5
Weight: 5
Port: 8081
TTL: 1 hour
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。有没有办法实现这一目标?我正在使用 Godaddy 来管理我的域。

有人可以帮我解决这个问题吗?

tec*_*raf 9

您不能为域名或静态定义的主机名分配端口号。

主机名转换为IP 地址端口号是添加到 IP 地址的单独数字。


DNS服务记录 (SRV)允许您定义服务的位置,包括其 IP 地址和端口号,但这需要特定的应用程序来查询 DNS 以获取 SRV 记录(RFC2782将它们称为“SRV 识别客户端”) .

使用 HTTP 协议连接的浏览器将始终连接到端口号 80(除非在客户端指定了端口http://...:8080/)。它不会查询 DNS 以获取 SRV 记录。


对于您的用例,您可以配置 HTTP 服务器(或反向代理)以根据Host浏览器提供的HTTP 标头重定向连接。通常称为“虚拟主机”的功能。

在这种情况下,您的服务器将侦听端口 80 上的外部连接并检查客户端请求的地址。如果是,api.abc.com它会将连接转发到内部端口 8081(这是最常配置的添加内部端口,即 127.0.0.1:8081),否则它将为您的常规网站的内容提供服务。

如果客户端浏览器支持 SNI(大多数当前浏览器都支持),HTTPS 连接也是可能的。