![如何設定 apache 虛擬主機以使用 ipv6?](https://rvso.com/image/567631/%E5%A6%82%E4%BD%95%E8%A8%AD%E5%AE%9A%20apache%20%E8%99%9B%E6%93%AC%E4%B8%BB%E6%A9%9F%E4%BB%A5%E4%BD%BF%E7%94%A8%20ipv6%EF%BC%9F.png)
我的伺服器有 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>
並重新啟動阿帕契。伺服器啟動沒有錯誤,但不起作用。當我在瀏覽器中輸入第二個網域時,找不到伺服器。當我進入[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 位址?這似乎是域解析中的問題。