我有一台 Azure Ubuntu VM 服务器,上面有多个网站。假设网站 A = 81,网站 B = 82。这些端点是公开的,我可以使用 <ip 地址>:<端口> 从外部访问该网站。
我希望我的每个网站都有一个友好的域名,但是在 CNAME 记录中,我无法指定端口 - 我只能指定 IP 地址。
通常情况下,这没问题,因为它只会默认为端口 80。但我有多个网站,因此它们不可能都是端口 80 - 那么我怎样才能将域转发到指向非 80 端口的 Azure VM 呢?
答案1
您无法在 DNS 级别执行此操作,因为 DNS 仅将名称映射到 IP 地址,并且完全不了解 TCP 端口。
有多种解决方案(反向代理,多个 IP 地址......),但最简单的方法是将所有网站配置为监听端口 80,然后使用主机标头区分它们;由于您使用的是 HTTP 而不是 HTTPS,所以这应该不会造成任何问题。
您使用的是 Ubuntu,所以您可能正在使用 Apache;虚拟主机才是正确答案。