Apache 2虚拟主机定义在2 ips上监听 – 怎么样?

我们在httpd.conf文件中有几个复杂的虚拟主机定义。

我的意思是:

<VirtualHost .....> .... </VirtualHost> 

我的意思是复杂的是他们充满了重写规则等等。

我们想绑定这个2个IP地址的虚拟主机。 目前它只限于一个。

是否可以使用一个虚拟主机将虚拟主机绑定到2个IP地址?

如果我们需要在未来做出改变,那将会使事情变得容易得多。

处理这个问题的一个简单的方法是将常见的位提取到一个单独的文件中(例如/path/to/foo ),然后将它Include在你的虚拟主机中。

 <Vitrualhost ...> ServerName X DocumentRoot Y Include /path/to/foo </Virtualhost> <Vitrualhost ...> ServerName Z DocumentRoot A Include /path/to/foo </Virtualhost> 

注意:不要把/path/to/foo放在其他地方的通配符中。

您可以在定义中放置多个IP /端口说明符,如文档中所述 。

例:

 <VirtualHost 1.2.3.4:80 2.3.4.5:80 1.2.3.4:8080> DocumentRoot /path/to/wherever ServerName example.com # Stuff goes here </VirtualHost> 

只要确保你已经configuration了足够的NameVirtualHost定义的Apache。

当然:

 Listen 80 <VirtualHost _default_:80> ... </VirtualHost> 

或者,考虑使用基于名称的虚拟主机。

你可以用…

 Listen 80 <VirtualHost *:80> ... </VirtualHost> 

..绑定到服务器上的任何IP

我可能会使用命名的虚拟主机,并对DNS进行修改,以便两个IP都具有相同主机名的Alogging。