在共享虚拟主机中,有时候有数百个虚拟主机在同一个networking服务器上运行一个IP地址。
共享一个IP地址而不是共享其他资源的具体方式是什么影响性能?
这将影响性能的唯一方法是服务器上的总请求将会更高,以及vhost文件中的查找以匹配url。
要确定有多less个虚拟主机在一个IP上运行,你不能做一个反向DNS,但IP查找。 你也可以在网上做一个: http : //www.yougetsignal.com/tools/web-sites-on-web-server/
Apache通过使用哈希表来非常有效地处理虚拟主机。 该文件说:
在初始化期间,生成每个IP地址的列表,并将其插入散列表中。 如果在NameVirtualHost指令中使用IP地址,则该列表包含给定IP地址的所有基于名称的虚拟主机。 如果没有为该地址定义虚拟主机,则将忽略NameVirtualHost指令并logging错误。 对于基于IP的虚拟主机,哈希表中的列表是空的。
由于快速散列函数,请求期间散列IP地址的开销很小,几乎不存在。 另外,该表针对IP地址在最后八位字节上进行了优化。
我见过超过1000个虚拟主机的Apache服务器,性能没有明显比拥有10个虚拟主机的Apache服务器差。