IIS PageSpeed + ARR

Optimizing Application Request Routing

Sticking an optimizing and caching reverse proxy in front of your webserver(s).

ARR introduction

Application Request Routing (ARR) is a real nice httpmodule for IIS, that is not as well known as it should be. With ARR you can turn IIS into a reverse proxy with caching capabilities, that you can put in front of one or more webservers. Doing so can really offload webservers and drastically improve the response times of your website.

ARR combined with PageSpeed

But it gets better: when IIS WebSpeed is installed next to ARR, something good will happen when the cache_extend filter is enabled: all cacheable html resources are rewritten to a 1 year lifetime. Doing so is good, as that ensures that ARR's cache will be put to good use. Having those in cache means that the webserver(s) behind it won't be bothered with serving up these assets anymore. This allows the backend to focus on serving dynamic resources like html generated by ASP.NET.

If set up properly, the unoptimized html can be cached as well. In that case, IIS WebSpeed will rewrite the html either from ARR's cache, or from the webserver as it streams in. Another enhancement that you will get when using IIS WebSpeed, is that html and css rewriting capabilities for hrefs and linked content are increased.


The good news is, that if you know what you are doing, you can have this up and running real fast.

ARR can be installed through the web platform installer, and you can find a great guide to configuring it here.