Overview of Shared Hosting Deployment Using Application Request Routing 2.0
Microsoft Application Request Routing (ARR) 2.0 is a proxy-based routing module that forwards HTTP requests to content servers based on HTTP headers and server variables, and load balance algorithms. For more information, refer to Using Application Request Routing.
There is a feature called host name affinity that is designed specifically for shared hosters. This article provides an overview of this feature and how it can be used to deploy an environment that is highly available and scalable, easy to manage, and potentially create additional business opportunities.
Common Shared Hosting Deployment
Below is a diagram of how a typical shared hosting deployment environment may look like:
- User requests
www.site2.com
. - DNS is requested for
www.site2.com
. - IP address for
www.site2.com
is returned. - Browser sends requests to the IP address.
- Based on the host name, requests are routed to the corresponding site.
- Responses for
www.site2.com
are returned.
While the above deployment works, it has the following disadvantages:
- There is no redundancy among sites.
- The administrator has to load balance the traffic by limiting the number of sites per server.
- The server resources may not be utilized evenly across servers.
- The administrator has to manage multiple configuration files.
Shared Hosting with Application Request Routing
The host name affinity feature in Application Request Routing enables shared hosters to rethink how sites are deployed. Application Request Routing affinitizes the requests, regardless of whether they are made from one client or multiple clients, to one server behind ARR, ensuring that a given site is consuming resources only on one of the servers. The below diagram illustrates this deployment environment:
- User requests
www.site2.com
. - DNS is requested for
www.site2.com
. - IP address for
www.site2.com
is returned. - Browser sends requests to the IP address.
- ARR load balances the requests to one server and affinitizes the requests for
www.site2.com
to the same server for the lifespan of corresponding worker process. - Requests are sent to one of the servers.
- Content for
www.site2.com
is requested from a file share. - Content for
www.site2.com
is returned. - Responses for
www.site2.com
are returned.
The above deployment environment with Application Request Routing provides the following benefits over the common shared hosting deployment:
- The requests are dynamically load balanced by Application Request Routing.
- The administrator can scale the environment horizontally by adding new servers without predefined site allocations.
- The servers' resources are more evenly distributed.
- The sites have high availability.
- There is only one shared configuration to manage.
With the ARR Version 1 release, hosters can specify the number of servers that sites can utilize per host name. This ability allows hosters to position each application server as a unit of capacity that the sites owners can purchase.
To learn how to use host name affinity in Application Request Routing, refer to Shared Hosting using Application Request Routing.