如何配置apache以使用ipv6进行子域

时间:2014-07-12 10:33:16

标签: apache subdomain ipv6

我刚刚使用像domain.com这样的域名设置了网站。然后设置另一个网站sub.domain.com。 现在可以通过ipv4访问它们。然后我添加了ipv6地址[a:b :: c:d]。但是,当我重新启动httpd服务时,出现以下消息:

  

[warn] VirtualHost a:b :: c:d:80与VirtualHost重叠a:b :: c:d:80,   第一个有优先权,也许你需要一个NameVirtualHost   指令。

我现在只能通过ipv6而不是sub.domain.com访问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>

1 个答案:

答案 0 :(得分:0)

正如Jeremy Visser所说,我搜索了配置文件并找到了以下行:

NameVirtualHost 1.2.3.4:80

这似乎是问题所在。然后我添加了这一行:

NameVirtualHost [a:b::c:d]:80

问题解决了!