Apache-2.2

IPv4 名稱虛擬主機、IPv6 虛擬主機

  • November 8, 2012

像我們許多人一樣,我有一個 apache 伺服器(2.2.15,加上更新檔),上面有很多虛擬主機。可以肯定的是,我擁有的不僅僅是 IPv4 地址,這就是為什麼我使用 NameVirtualHost 在同一個 IPv4 地址上執行大量它們的原因。

我正忙著讓我所做的一切都啟用 IPv6。這個伺服器現在有一個路由的 /64,它給了我大量的v6地址可以扔掉。我試圖找到一種簡單的方法來告訴每個 v4-NameVirtualHost 它還應該在唯一的 ipv6 地址上充當 VirtualHost。我真的,真的不想為每個虛擬主機定義兩次。

有誰知道這樣做的優雅方法?或者做一些類似的事情,以防我在我的問題中嵌入了任何危險無知的假設?

我認為這樣的事情會起作用(免責聲明:這是我的想法,我還沒有測試過):

NameVirtualHost 10.0.0.1:80

<VirtualHost 10.0.0.1:80 [2001:db8::1]:80>
  ServerName blabla
  ...
</VirtualHost>

<VirtualHost 10.0.0.1:80 [2001:db8::2]:80>
  ServerName blabla2
  ...
</VirtualHost>

etc...

最簡單的方法是對 Apache 配置不做任何事情。

假設您使用了 Apache 之類的指令NameVirtualHost *<VirtualHost *:80>然後 Apache 將回答它所在的任何地址上的任何虛擬主機Listen(預設情況下,所有可能的地址)。

如果您認為 Apache 無法在任何可能的 IPv6 地址上回答任何虛擬主機,那麼您最終將不得不編輯您的<VirtualHost>條目,如@SanderSteffann 的回答中所示。

引用自:https://serverfault.com/questions/446506