今天是个好日子,
我看到很多关于cname的文档,但是它无法帮助确定我的方法有什么问题。
我被困在CNAME问题上。 我会欢迎你的build议和提示。 下面是我所瞄准的一个例子。
假设我有域名example.com,IP 000.000.000.000。 我有一个client1,client1.com,它的IP是111.111.111.111(IP完全是理论上的,其余的都是)。
这只是众多客户之一,为此我提供一些服务(在线目录等)。 这就是为什么在我的服务器上,我通过cpanel:client1.example.com创build了一个子域,其中我放置了有关该client1的所有脚本。
为了让他访问这些服务,我邀请他创build一个这个子域的redirect。 因此,他创build了一个CNAMElogging(通过CPANEL):services.client1.com 26000 client1.example.com
问题:这个cname似乎logging了正确的IP地址(000.000.000.000)。 如果有人使用他的浏览器访问services.client1.com,他到达example.com服务器(关于IP)。 但是,一旦在example.com服务器上,它不知道到哪里准确着陆,因此它login到域的缺省页面。 总结一下:
用户键入的urlservices.client1.com – >到达111.111.111.111 – >服务器表明这是一个cname对client1.example.com – >到达000.000.000.000 – >服务器不知道什么做这个查询 – >提供域的默认页面(一些cpanel cgi脚本)。
我的问题是:是否有可能,没有客户端的任何进一步的暗示(即明确的redirect),我configuration服务器example.com,以便它指向任何CNAMEed查询,如[1] http://services.client1 .com专门的子域“client1.example.com”? 我正在考虑在example.com的服务器上创build的某种虚拟主机,但是我无法完成。
我正在使用一个Centos虚拟服务器用于这个目的,其中安装了CPanel(以及Apache服务器,PHP和其他一些东西)。
我希望明确,任何领导都可以启发我!
祝你有个好的一天,
wisebes
当客户端尝试使用浏览器加载services.client1.com ,他将联系服务器的IP地址,但是浏览器仍然会发送包含services.client1.com的主机头。 这很可能与您的服务器上的任何configuration的虚拟主机不匹配,所以Apache提供了它的默认站点。
您需要修改您的apache vhostconfiguration,以便不仅匹配主机名client1.example.com而且还匹配services.client1.com
我想出了如何做到这一点。
事实上,正如leepfrog指出的,你必须修改你的虚拟主机configuration文件,以实现这一目标。 步骤如下(CENTOS):
0-创build子域client1.example.com
1-进入httpd.conf文件(/etc/httpd/conf/httpd.conf),取消注释client1.example.com的“include”部分。 事实上,你不能在这个文件中添加别名,因为它可能会定期重新生成。 但是,您可能包含外部文件。 include行允许你包含任何扩展名为.conf的文件,该文件位于指定的path上。
2)validationpath是否存在,或者根据需要创build它,然后在那里创build一个file.conf。只要它以“.conf”结束,任何名字都适合。你可以在该文件中写入以下内容:
DocumentRoot /home/user/public_html/client1 ServerAdmin [email protected] ServerName client1.example.com ServerALias client1.example.com service.client1.com
注意:而不是文档根目录下的“user”,这将是你的cPanel用户
3-重新启动apache:/ sbin / service httpd restart
从现在起,任何对service.client1.com的查询将被视为IP 000.000.000.000的别名。 在那里,服务器检查虚拟主机,比较,并看到service.client1.com是client1.example.com子域的别名。 它服务于本地子域的内容。
Etvoilà!