如何configurationApache与mod_cache和mod_proxybalance大量虚拟主机

我有一个IIS服务器场,它提供类似于域停放站点,有数千个域分配给系统,并且dynamic地生成内容。 我需要一个负载平衡和caching解决scheme。 我的意图是使用Apache 2.2与mod_cache和mod_proxybalance来完成这一点。

我之前使用Apache的经验相当有限,通常只处理几个基于名称的虚拟主机。 我从来没有实现负载平衡或代理。

在研究一个configuration的同时,我还在摸索着一些基本的configuration指令,我不知道如何configuration这个环境。 尤其是,apache文档给出了关于不正确configurationServerName指令的可怕警告。 在这种情况下,我不知道如何处理这个。

该网站没有提供自己的内容,而是caching和代理内容。 我不能把每个域名放入独立的virutalhost指令。 在这种情况下,甚至需要ServerName(或其他似乎需要域名的指令)的指令吗?

编辑:

如果你想提出其他解决scheme,我向他们开放。 到目前为止,已经提出了ngnix,但ngnix不能代理基于名称的虚拟主机,因为它的代理代码只使用http 1.0到后端服务器。 我也不能确定它是否可以caching基于名称的虚拟主机。

清漆看起来像一个可能的caching解决scheme,但我真的很喜欢我可以托pipe在同一台服务器上,所以我不需要为每个function多个服务器。

如果你打算replace后端mod_vhost_alias

否则,如果您只是将caching放在现有解决scheme的前面,则清漆或鱿鱼更适合。 Varnish内置了对后端负载平衡,运行状况检查等的支持。您也可以在前面运行一对ipvs服务器来负载均衡,并为一对(或多个)Varnish服务器提供100%的正常运行时间。

基本上,每个域都需要一个<VirtualHost *> ,每个域都有自己的ServerNameServerAlias ,每个域内放置与代理和caching相关的指令。

我build议你把每个文件放在一个普通的目录中,并把它包含在主Apache文件中。 现在大多数Linux发行版都使用Debian / Ubuntu的sites-availablesites-enabled目录,所有域都是可用目录中的文件,并且仅在激活的目录中链接才能被激活。

而且我知道这不是你问的,但是因为这只是域名停放你有没有考虑过使用nginx ? 它被devise成这样的东西(前端接收大量的点击并提供静态/caching/代理内容)。

你可能想看看http://httpd.apache.org/docs/2.0/vhosts/mass.html ,特别是最后一段。 我已经用mod_rewrite成功运行了虚拟主机。