我的服务器有 1 个 ipv4 地址和几个 ipv6 地址。一个域名重定向到 ipv4 A 记录,我像这样设置了 apache ports.conf:
Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80
和虚拟主机文件:
<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
一切正常。
现在我想为第二个域创建新的虚拟主机,并使用第二个 IP。我将第二个域重定向到 ipv6 AAAA 记录,并添加到 ports.conf:
Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80
创建新的虚拟主机文件:
<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
并重新启动 Apache。服务器启动时没有错误,但它不起作用。当我在浏览器中输入第二个域名时,找不到服务器。当我输入[ip.v6.address]
网站时,显示出来。
有什么帮助吗?
答案1
您的 apache 配置看起来正确,但如果您希望一个站点能够通过 IPv4 和 IPv6(双栈)访问,那么配置会比需要的稍微复杂一些。
代替
<VirtualHost ip.v4.address:80>
...
</VirtualHost>
<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>
你可以做
<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>
这样,单个虚拟主机就可以监听两个 IP 地址。维护起来容易得多!
如果您确实想要在 IPv6 上建立不同的站点,那么您的配置当然是正确的。
答案2
这听起来像是 IPv6 名称解析错误,而不是 Apache 错误。请检查名称是否正确解析为地址。
答案3
名称是否解析为正确的 IPv6 地址?这似乎是域解析中的问题。