在我的公司,我们的主要产品是基于networking的,我们的每个客户都有自己的网站。 每个客户都去customer.domain.com访问他们的网站。 目前,在IIS中,每个客户都build立了自己的网站,并为该网站中的所有应用程序提供了1个应用程序池。 我们的许多客户都在相同的代码基础上,但有些客户使用新版本(testing版)。
我们也使用负载平衡,以便每个请求可能会击中任何X服务器。
这是最理想的设置? 其中一个主要问题是服务器上只有大约8 GB的内存,而且还有大约200个客户端,所以对于每个应用程序池,我们必须限制它可以使用的内存量为300MB,这样我们就不会内存不足,但这也会导致应用程序池经常回收。
我们希望扩展,而不是增加,但是随着我们添加越来越多的客户端,我们将拥有越来越less的RAM,或者我们将不得不开始向服务器添加大量的RAM。
如果你有类似的设置,你是怎么解决这个问题的?
我们为不同的客户在不同的域名下的同一个框中设置了多个不同的网站。 我们从一个文件夹和一个应用程序池运行它们,因为它们都共享一个代码库。
对于想要查看testing代码的客户,我们还有一个登台站点设置,他们可以login并查看(如果帐户已在该站点上为其设置),它们具有不同的FQDN集。 所以我们结束了两个网站和两个应用程序池。
基本上所有你需要做的是设置IIS侦听多个IP与证书设置为每个需要的。 这样数据只caching一次。
这将取决于您的环境,特别是我们正在讨论的服务器数量,服务器是否为64位,以及应用程序的稳定性。
我看到三个选项:
最简单的解决scheme是首先将您的testing版网站移到自己的一组服务器上,然后再看看如何将当前用户分成多个组。
客户1,2,3,4全部在服务器a,b,c上进行。客户5,6,7,8全部在服务器d,e,f上进行
等等,这样你有冗余,你的客户负载均衡
如果你想用vmware esx来更加细致地研究可视化,所以你在一个集群中有3台服务器,然后根据需要build立尽可能多的Web服务器,甚至可以为每个服务器创build一个专用的虚拟服务器客户,但这更多是一个扩大解决scheme的规模