【发布时间】:2014-09-02 22:10:12
【问题描述】:
我刚刚使用 domain.com 之类的域设置了一个网站。然后设置另一个网站 sub.domain.com。 现在它们都可以通过 ipv4 访问了。然后我添加了 ipv6 地址[a:b::c:d]。但是,当我重新启动 httpd 服务时,出现以下消息:
[警告] VirtualHost a:b::c:d:80 与 VirtualHost a:b::c:d:80 重叠, 第一个优先,也许你需要一个 NameVirtualHost 指令。
我现在只能通过 ipv6 访问 domain.com,而不是 sub.domain.com。但是,不知何故,我可以通过 ipv6 访问 domain.com/sub。我似乎不能将 ipv6 地址视为 apache 中的 ipv4 地址。我想知道如何将 apache 配置为我希望的行为。
我的 httpd.conf 文件中有以下几行:
Listen 1.2.3.4:80
Listen [a:b::c:d]:80
<VirtualHost 1.2.3.4:80>
DocumentRoot /var/www/html
ServerName domain.com
ErrorLog "/var/www/logs/error.log"
CustomLog "/var/www/logs/access.log" common
</VirtualHost>
<VirtualHost [a:b::c:d]:80>
DocumentRoot /var/www/html
ServerName domain.com
ErrorLog "/var/www/logs/ipv6_error.log"
CustomLog "/var/www/logs/ipv6_access.log" common
</VirtualHost>
<VirtualHost 1.2.3.4:80>
DocumentRoot /var/www/html/sub
ServerName sub.domain.com
ErrorLog "/var/www/logs/sub_error.log"
CustomLog "/var/www/logs/sub_access.log" common
</VirtualHost>
<VirtualHost [a:b::c:d]:80>
DocumentRoot /var/www/html/sub
ServerName sub.domain.com
ErrorLog "/var/www/logs/sub6_error.log"
CustomLog "/var/www/logs/sub6_access.log" common
</VirtualHost>
【问题讨论】:
-
非常有趣的问题,但也许更适合 serverfault.com?
-
也许你需要一个 NameVirtualHost 指令?