Using the Application Request Routing Module
by IIS Team
Microsoft Application Request Routing (ARR) for IIS 7 and above is a proxy-based routing module that forwards HTTP requests to content servers based on HTTP headers, server variables, and load balance algorithms. ARR can be used to:
- Increase application availability and scalability.
- Better utilize content server resources.
- Facilitate application deployment including pilot management and A/B testing.
- Lower management costs and create opportunities for shared hosters.
ARR relies on the URL rewrite module to inspect incoming HTTP requests to make the routing decisions. Therefore, the URL rewrite module is required to enable ARR features.
Microsoft Application Request Routing for IIS includes the following key features:
- HTTP-based routing decisions Unlike hardware load balancers that make routing decisions at the IP level, ARR makes routing decisions at the application level. By using ARR with the URL rewrite module, you can write powerful routing rules that are based on HTTP headers and server variables.
- Load balance algorithms You can apply a user-selected load balance algorithm to determine which content server is most appropriate to service HTTP requests. Six algorithms are provided.
- Health monitoring You can use both live traffic and specific URL tests to determine the health of content servers. A set of configuration parameters are provided to define the meaning of server health. You can also disable both live traffic and URL tests and use a custom health monitoring provider. To do this, set the health of the servers by calling RSCA APIs.
- Client affinity By using a cookie, ARR can affinitize all requests from a client to a content server. ARR differentiates the clients behind NAT, so each client is treated independently. This feature requires that the clients are able to accept cookies.
- Host name affinity"Host name affinity" is a specific feature for shared hosters. This feature changes the deployment topology to minimize and streamline administration and to create additional business opportunities. For more information about this scenario, see Shared Hosting Deployment using Application Request Routing. Two providers, round robin and memory, are used to determine to which server the host should be affinitized.
- Multiple server groups ARR can manage multiple server groups, which are logical groupings of content servers in an environment. This feature allows ARR to be used in pilot management and A/B testing scenarios.
- Management and monitoring by using the UI You can use IIS Manager to manage and view all configuration settings and aggregated runtime statistics for ARR.
- Failed request tracing rules Specific traces have been added to quickly troubleshoot and diagnose ARR.
Getting the Module
Using the Module
These articles explain how to configure and achieve the core scenarios by using ARR. It is recommended that you read the articles in the following order because the scenarios get richer with each article:
- Install Application Request Routing
- Define and Configure an Application Request Routing Server Group
- Includes using health monitoring and client affinity
- Configure 3-tier deployment architecture using Application Request Routing
- Pilot Program Management using Application Request Routing
- Using Failed Request Tracing Rules to Troubleshoot Application Request Routing
High availability at ARR tier