单个Apache服务器上有多less个域?

我在一台Apache服务器上为我的客户端托pipe了大约300个名。 他们都没有太多的stream量,所以服务器负载不是问题。

从理论上讲,服务器上可以有多less这样的低stream量域名应该是没有限制的,但是我担心如果服务器上有太多的域名,那么检查每个传入请求的纯粹的域名列表将会使Apache下。

有一个经验法则Apache的configuration可以多久,它可以处理多less个不同的领域没有问题? 500好吗? 5000?

澄清:我不问一个服务器可以处理多lessstream量。 我知道这个特定的服务器可以处理至less两倍的当前stream量。 我想知道域的数量是否是一个关键因素。

我已经看到了数以千计的域名运行没有问题的服务器。 性能不会显着降低您正在运行的网站的数量。

这是请求的总数,每个请求需要多lessCPU(以及其他资源,如带宽,磁盘IO,数据库调用等)都会影响服务器的响应速度。

这种事情没有什么神奇的经验法则。 全部基于硬件规格和软件调优。 你不会添加一个新的站点,然后看到你的服务器技巧,并窒息死亡(除非它是一个非常高的使用率站点,你没有准备好)。 与大多数情况一样,您需要监视服务器的性能,当您开始看到服务器性能下降时,请评估当前的硬件升级情况,或者查看新的服务器以处理新的域名托pipe。 所以要回答你的说明,这不是关于域的数量,而是关于每个域单独作为负载到服务器的内容。 没有魔法数字。

你可以findhttp://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching翔实。 Apache使用一个散列表来处理未映射到*:80的VHost,然后迭代分配给该IP:端口的所有VHost的链表以便find匹配的服务器(名称|别名)。 在这个过程变得非常昂贵之前,您可能需要托pipe数百万个域名。

你可能也想看看http://httpd.apache.org/docs/2.2/vhosts/mass.html,并根据你当前的方法进行基准testing。 一旦你得到足够的VHosts,链表遍历需要比lstat()更多的时间, VirtualDocumentRoot最终会比单独指定的VHosts更快。

我有一些VPS服务器,主机大约有8000多个域名。 服务器运行正常,平均负载始终在0.xx级别。 我想它可以处理更多没有问题。 添加或删除域时,需要更长的时间来重新编译Apache。 另外,httpd.conf文件相当大,大约60M。 将域名数量限制在5000个左右比较安全。