Iis – the best way to create multiple sites shared across multiple servers in IIS7

asp.netiisiis-7

At my company our main product is web based and each of our customer has their own website. Each customer goes to customer.domain.com to access their website. Currently, in IIS each customer has their own website set up, and are given 1 application pool for all of the applications in that website. Many of our customers are on the same code base, but some customers are on newer versions (beta testers).

We also use load balancing so that each request may hit any of X servers.

Is this the most ideal setup? One of the main issues is that we only have about 8 GB of ram on the server, but also about 200 clients, so for each application pool we have to limit the amount of memory it can use to like 300MB so that we don't run out of memory, but this also causes the app pool to recycle frequently.

We want to scale out, rather than up, but as we add more and more clients, we are going to have less and less RAM available, or we will have to start adding massive amounts of ram to the servers.

If you have a similar setup, how have you solved the problem?

Best Answer

We have several different sites setup on the same box under different domain names for different customers. We are running them from a single folder and a single app pool as they all share a code base.

For customer that want to look at beta code we have a staging site setup as well which they can log into and look at (if accounts have been setup on that site for them) which has a different set of FQDNs. So we end up with two websites and two app pools.

Basically all you need to do is setup IIS to listen on multiple IPs with the certificates setup for each one as needed. This way the data is only cached once.