我有一个具有 3 个不同子域的 SAAS 应用程序。
example.com
app.example.com
support.example.com
我只想在support.example.com
示例:testcompany.com
需要我的服务support.example.com
为了实现这一点,我需要类似的东西support.testcompany.com
来基本上加载support.example.com
网站。
我已经在 DNS 中创建了 CNAME 记录testcompany.com
,指向support.example.com
但example.com
正在加载而不是support.example.com
我该如何解决这个问题?这是正确的方法吗,还是还有其他方法?
答案1
DNS CNAME 记录仅将主机名指向同一个服务器目标主机名指向的。
它不会自动配置 Web 服务器以加载两个主机名的相同网站。这需要对 Web 服务器软件(即 Apache、Nginx)进行额外的重新配置
(你可以通过将一个网站指定为默认虚拟主机当使用未知主机名访问 Web 服务器时,总会显示该信息,但这仅适用于纯 http,而不适用于 https)
答案2
无论您使用A
指向同一 IP 地址的记录还是CNAME
指向最终指向该 IP 地址的另一个主机名的记录,浏览器都会Host:
在其地址栏中发送包含主机名的 HTTP 标头。
因此,您的VirtualHost
forsupport.example.com
需要其他主机名的别名,例如support.example.net
和support.example.org
。
<VirtualHost *:80>
ServerName support.example.com
ServerAlias support.example.net support.example.org
. . .
</VirtualHost>
否则,Web 服务器将显示默认虚拟主机,在本例中似乎是example.com
。
最好有一个默认的虚拟主机,以防止指向该 IP 地址的每个主机名显示 的内容example.com
。您当前的配置可能会影响 SEO,也可能存在安全问题。