This section of the documentation applies to Microsoft Application Request Routing Version 2 for IIS 7 and Above.
Microsoft Application Request Routing (ARR) for IIS 7 and above is a proxy-based routing module that forwards HTTP requests to application servers based on HTTP headers, server variables, and load balance algorithms.
ARR Version 2 is an incremental release that includes all of the features from Version 1, and adds support for disk-based cache. More specifically, ARR Version 2 can be used to:
- Enhance ARR Version 1 scenarios with disk cache.
- Use ARR as a cache proxy as a cache node in a CDN/ECN environment.
- Use ARR as an edge/child cache node.
- Use ARR as a parent cache node.
- ARR Version 1 and ARR Version 2 cannot be installed side-by-side.
- Previous releases of ARR Version 2 (Beta1, Beta2 and RC) and the ARR Version 2 RTW cannot be installed side-by-side.
- ARR Version 2 RTW supports upgrading from ARR Version 1 RTW and from ARR Version 2 RC. If any other version of ARR is already installed, uninstall it before proceeding with the ARR Version 2 installation.
- The minimum supported resolution for IIS Manager is 1024x768.
ARR Version 2 includes the following key features:
- Disk-based caching
- Cache hierarchy management
- Cache proxy node in CDN/ECN environment
- Caching compressed objects
- Browsing cached contents using IIS Manager
Browse through cached contents across multiple drives in one consolidated graphical view in IIS Manager.
- Removing cached contents
Delete cached contents by matching URL patterns.
- Running Scavenger.exe to delete cached content in the secondary drive as a standalone utility.
- Overriding cache-control directives
Manually override the cache-control directives in the response header to change the cache behavior.
- Warming up cache node
Proactively warm up your cache node with contents that will be in demand before they are requested. In addition, the contents can be pre-cached selectively only at the parent cache tier.
- Intelligent byte-range support
ARR converts the byte-range request into manageable segments to increase cache hit/miss ratio without sacrificing response time.
- Intelligent live request support
- Caching while serving response
- Support for performance counters
In addition to the kernel memory cache in ARR Version 1, Version 2 adds support for disk-based cache, including support for a secondary network-based drive.
Define and manage relationships between cache nodes, including support for the Cache Array Routing Protocol (CARP).
Because ARR is a proxy-based HTTP request routing module with support for disk cache and CARP, ARR can be used as a cache proxy in a CDN/ECN environment.
Disk-based cache stores compressed objects so that the objects do not have to be compressed in real time for every request. In addition, ARR gzip compresses objects even if the content server does not respond with gzip content-encoding.
ARR is designed to work with Live Smooth Streaming to support live content requests without overloading the live streaming server.
Caching large content, such as a movie clip, may take some time. ARR Version 2 is capable of caching the content while serving the response immediately.
The runtime statistics shown in the Monitoring and Management view are accessible as performance counters.
Get the module
- Microsoft Application Request Routing Version 2 for IIS 7 (x86) here.
- Microsoft Application Request Routing Version 2 for IIS 7 (x64) here.
Using the module
The following articles explain how to install and configure ARR Version 2. It is strongly recommended that these articles are read in the order listed below as they get progressively more advanced.
Install Application Request Routing (ARR) Version 2 for IIS.
Includes IIS configuration recommendations when deploying in a production environment.
Configure and enable disk cache for ARR.
How to configure primary cache drives and a secondary cache drive that can be shared across multiple cache nodes.
How to define cache hierarchy for ARR.
Explains how the cache relationship is managed in ARR.
Configure ARR as cache nodes in CDN/ECN.
Steps through how ARR can be deployed as an edge/child cache node as well as a parent cache node.
Browse cached contents on disk.
View cached contents using IIS Manager across multiple primary cache drives.
Remove cached contents from ARR.
Delete one or more cached contents while browsing or by matching URL patterns.
Running Scavenger.exe to delete cached content in the secondary drive as a standalone utility.
Override cache-control directives in an HTTP response.
Control what to cache or for how long to cache, irrespective of cache-control directives.
Warm up cache nodes on ARR with anticipated contents.
Proactively cache contents on ARR before they are in demand.
Configure byte-range request segment size in ARR.
Explore how ARR handles byte-range requests.
Configure request consolidation feature in ARR.
Understand how ARR can help with serving live streaming media.
Using compression in ARR.
ARR compresses and caches compressed objects even if the content server does not support compression.
- Using performance counters.
Use performance counters to gather real-time runtime statistics.
Deployment recommendations for ARR.
Best practices and recommendations for ARR deployment.
Changes in URL Rewrite Module
ARR Version 2 includes the updated version of URL Rewrite Module 2.0, which has several breaking changes that were introduced since the release of the URL Rewrite 2.0 Beta. The breaking changes are listed below:
- If a distributed rewrite rule sets a server variable, then that server variable has to be added to a <allowedServerVariables> collection. This can be done by either using the URL Rewrite user interface in IIS Manager or by modifying the applicationHost.config file as shown below. Note that it is not necessary to do this if the server variable is set by using a global rule.
<rewrite> <allowedServerVariables> <add name="MY_SERVER_VARIABLE" /> </allowedServerVariables> </rewrite>
- The HTTP_CONTENT_TYPE server variable has been replaced with RESPONSE_CONTENT_TYPE. If an outbound rewrite rule uses a pre-condition that checks the HTTP_CONTENT_TYPE, then that rule will stop working. Change the pre-condition to use RESPONSE_CONTENT_TYPE instead.
Discuss in IIS Forums