使用VirtualHost 标签建立虚拟主机的时候,要注意同时使用 ip 和 serverName。
如果不这样会造成以下问题:
假如我们的声明是这样的:
<VirtualHost 10.1.1.1:*>
</VirtualHost>
PS 10.1.1.1 对应的域名为 www.abc.com
那么apache http server 会去查DNS服务器
如果DNS服务器down 掉了,那么apache http server 也会down掉,这样就会造成apache HTTP Server 间歇
性的当机。
<VirtualHost www.abc.com>
</VirtualHost>
这样的配置会造成一个问题,当apache HTTP Server 启动时会去解析域名www.abc.com所对应的IP
如果DNS没有这个域名所对应的IP,那么服务器也就不能启动。
假使是这样配置的:
<VirtualHost www.abc.com>
</VirtualHost>
<VirtualHost www.cde.com>
</VirtualHost>
www.abc.com 对应IP 10.1.1.1
www.cde.com 对应IP 10.1.1.2
加入DNS服务器重置了映射关系:
www.abc.com 对应IP 10.1.1.2
www.cde.com 对应IP 10.1.1.1
那么这样就会拦截下所有对www.abc.com的请求,这是一个很严重的安全问题。
综上所述:
apache 推荐的配置方式是:
<VirtualHost ip>
ServerName ...
</VirtualHost>