如何設定 apache 虛擬主機以使用 ipv6?

如何設定 apache 虛擬主機以使用 ipv6?

我的伺服器有 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 位址?這似乎是域解析中的問題。

相關內容