dynamic虚拟主机(CNAME)

我有dynamicconfiguration的虚拟主机:

UseCanonicalName Off <VirtualHost *:80> ServerAlias *.projects.domain.com VirtualDocumentRoot /var/www/projects/%-4 </VirtualHost> <VirtualHost *:80> ServerAlias *.testing.domain.com VirtualDocumentRoot /var/www/testing/%-4 </VirtualHost> 

当我input浏览器xxx.projects.domain.comyyy.testing.domain.com时,它工作正常但是:

它不适用于CNAMElogging。 例如: xyz.com => abc.projects.domain.com

如何configurationApachedynamicselect虚拟主机根据parsing的DNS名称( abc.projects.domain.com ),而不是根据HTTP HOST头( xyz.com ),而不插入xyz.com到Apacheconfiguration?

它不适用于CNAMElogging。

CNAME只会告诉它使用与目标相同的DNSlogging,但它不会告诉您的HTTP服务器(Apache),当它看到CNAME域时,应该将其视为与CNAME目标相同。

有几个选项,但基本上你需要指定xyz.com是abc.projects.domain.com的别名。

这里列出的几个选项可能适合你。 例如,请参阅“使用单独的虚拟主机configuration文件”。

我遇到过类似的情况,最后我为我的所有域名生成了正确的vhostconfiguration,包括使用Chef的别名。 我发现它比试图dynamic更简单,更强大。

如果你不喜欢重复的VirtualHostconfiguration,那么有另外一个select使用符号链接

对于您的每个项目testing创build符号链接到相应的客户的域名,例如

 ln -l /var/www/projects/abc /var/www/links/xyz.com ln -l /var/www/projects/abc /var/www/links/abc.projects.domain.com 

然后这样configurationVirtualHost:

 <VirtualHost *:80> ServerAlias *.projects.domain.com VirtualDocumentRoot /var/www/links/%0 </VirtualHost> 

因此,您的网站将同时使用xyz.com和abc.projects.domain.com。 唯一必须自动化的 (例如通过cron)是创build符号链接。