Application Request Routing (ARR) 2.0 for Shared Hosting
This topic is a guiding map for the information needed by hosters to:
- Learn about the Application Request Routing (ARR) 2.0 feature of IIS 7 and above.
- Set up ARR as referenced in the Shared Hosting Configuration article.
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. A key feature of ARR is called "host name affinity," which is designed specifically for shared hosters. It affinitizes (creates an affinity) the requests to a given number of servers behind the ARR server regardless of whether they are made from one client or multiple clients, ensuring that a given site is consuming resources only on a defined number of servers. This feature allows hosters to define new business models where customers can pay for a specific number of servers as their needs change over time.
Continue to download ARR 2.0.
Learn about ARR 2.0
ARR is a key component of the Windows Web Platform <link: to the Shared Hosting config article>. To understand how hosters can take advantage of ARR in shared hosting scenarios, you can:
- Watch this video.
- Read this overview article. It explains the difference between the current approach to shared hosting and the new approach enabled by ARR.
The following image depicts the logical flow of requests between the client and the target Web site server:
In summary, ARR's benefits include:
- HTTP(S) requests are dynamically load balanced by ARR.
- Administrators can scale the Web farm environment horizontally by adding new Web servers that do not have predefined site allocations.
- Web server resources are more evenly distributed.
- Sites have high availability.
- Administrators have only one shared configuration to manage.
- The ARR domain-server affinity feature opens a new server-to-site resource allocation model.
Set Up ARR for Shared Hosting
The following steps and articles constitute a complete guide for setting up an ARR server and a corresponding Web server farm, as described in the Shared Hosting Configuration article:
Designate a server connected to the Internet that will run ARR and will handle all Web requests between clients and the Web application servers.
Install ARR using Web Platform Installer on the designated server.
Change the application pool process model for ARR.
Set up an ARR Web server farm, using the procedure in the following article. For more information about shared configuration, see: https://www.iis.net/learn/manage/managing-your-configuration-settings/shared-configuration_264.
Configure ARR for shared hosting <link: https://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/shared-hosting-using-application-request-routing-arr>.
Evaluate whether high availability and scalability are required. If so, there are two approaches:
- Use a hardware load balancer <link: https://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/achieving-high-availability-and-scalability-arr-and-hardware-load-balancer>.
- Use NLB <link: https://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/achieving-high-availability-and-scalability-arr-and-nlb >.
- Notice that the ARR server does not use shared configuration with the Web servers in the farm. But in high availability and scalability scenarios, ARR servers will be set up to share configuration between them.
Evaluate whether SSL is required for the hosted sites. If so, ensure that the Web servers in the ARR Web server farm are not accessible directly from the Internet. Only the ARR server(s) should be available from the Internet. This is very important since ARR uses SSL Offloading by default. If SSL is not required, disable SSL Offloading. SSL Offloading provides the following benefits:
- It helps to maximize the server resources of the Web servers by keeping them from allocating cycles for encrypting and decrypting requests and responses.
- The SSL certificates (for each domain) are installed once (on the ARR server), rather than on every server in the Web farm.
<Issue: Need instructions on setting up log file directory permissions in the NAS for ARR.>
Configure the ARR server to forward customer site error details. The ARR server must be configured to forward any error details that customers want their Web sites to send back to Web clients. After this step has been completed, customers will be able to control error page content. By default, the ARR server will forward errors but will omit the error details. Follow these steps to allow error details to be forwarded:
This article provides a map to the guidance that hosters need to learn about and set up ARR in their shared hosting environments. It includes the recommended shared hosting configuration and the instructions needed to set up ARR.