我在这里有点困惑,读遍了所有地方后我还没有找到完全符合我的情况的答案。
我一直在开发一个大型软件,允许用户通过自己的域名访问系统。
我将使用域:system.example1.com(包含系统并可以通过该方式直接访问)和tester.example2.com(这将是我想要通过其访问的域)
我可以通过使用 A 记录将 tester.example2.com 指向 system.example1.com 的 IP 地址来使所有这些工作正常,但我想通过使用 CNAME(如果可能)让系统用户尽可能轻松地完成此操作。
因此,为了进行测试,我在注册商级别(在本例中为 godaddy)在我的域名上创建了子域名作为 CNAME 记录,如下所示:
CNAME tester.example2.com > system.example1.com TTL 1 小时
但是当我访问 tester.example2.com 时,我看到的只是 apache 默认页面,而不是像直接访问 system.example1.com 那样看到系统加载。
顺便说一下,服务器正在运行 cPanel。
如果我使用 A 记录执行此操作,我会将 tester.example2.com 域停放在 cpanel 中,但我无法使用 CNAME 执行此操作(据我所知)
答案1
CNAME 记录在 DNS 级别起作用,它是不同域上的记录的别名。这意味着tester.example2.com
将指向与相同的 IP 地址system.example1.com
。
这不会改变 HTTP 中的任何内容。您的浏览器将向tester.example2.com
和不是至system.example1.com
。由于 CNAME,它最终会位于同一台服务器上,但如果您的服务器不知道如何处理tester.example2.com
它,它将显示默认页面。
因此,除了您的 CNAME 之外,您还必须配置您的网络服务器。
(有些人在解释 CNAME 时会谈到“重定向”。请不要使用“重定向”一词,因为它只会让您更难理解差异。)
答案2
正如该 cPanel 线程中所述,您可以通过临时启用“允许远程域”设置来执行此操作,以便可以停放 tester.example2.com。请注意,之后应立即禁用添加其他远程域的功能。
WHM » 服务器配置 » 调整设置,域选项卡,启用 [允许远程域],添加您的域,然后禁用。
允许远程域
允许创建解析到其他服务器的停放/附加域(例如域转移)这可能是一个重大的安全问题。如果必须启用它,请确保不允许用户停放常见的 Internet 域。
更多信息请参阅 cPanel 文档:调整设置>> 域名。
对于其他人,我还想花点时间介绍如何在 Apache 服务器上执行此操作没有运行cPanel。当您在浏览器中输入 tester.example2.com 时,会向服务器发送 HTTP 请求标头“Host: tester.example2.com”。Apache 需要知道应将此请求路由到哪个应用程序或“VirtualHost”(因为 Apache 设计为运行多个)。在ServerAlias tester.example2.com
适当的现有<VirtualHost>
块内应用指令会告诉 Apache 将请求路由到哪个应用程序。