she*_*ldy 12 ipv6 virtualhost apache-2.2
我有一个带有 1 个 ipv4 地址和一些 ipv6 地址的服务器。一个域被重定向到 ipv4 A 记录我像这样设置 apache ports.conf:
Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80
Run Code Online (Sandbox Code Playgroud)
和虚拟主机文件:
<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
一切正常。
现在我想用第二个 ip 为第二个域创建新的虚拟主机。我将第二个域重定向到 ipv6 AAAA 记录,添加到 ports.conf:
Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80
Run Code Online (Sandbox Code Playgroud)
创建新的虚拟主机文件:
<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
并重新启动Apache。服务器启动时没有错误,但它不起作用。当我在浏览器中输入第二个域时,找不到服务器。当我进入[ip.v6.address]
网站时出现。
有什么帮助吗?
San*_*ann 15
您的 apache 配置看起来正确,但如果您希望通过 IPv4 和 IPv6(双堆栈)访问一个站点,则比它需要的要复杂一些。
代替
<VirtualHost ip.v4.address:80>
...
</VirtualHost>
<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
你可以做
<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这样,单个虚拟主机就可以侦听两个 IP 地址。维护起来容易多了!
如果您真的想要一个不同的 IPv6 站点,那么您的配置当然是正确的。