Application Request Routing and Proxy Chain
It is pretty common to run ARR as a proxy behind another proxy in a corporate environment and I've been asked how ARR can be configured in such an environment. This practice is also known as "proxy chaining" where one proxy is "chained" to another proxy.
ARR supports proxy chaining. From the server level proxy settings, you will find:
Enter the proxy that ARR should be "chained" to. That's it!
From the configuration point of view, this setting is written out to applicationHost.config as (below is an example of ARR configuration that is configured as a forward proxy that is chained to go via myproxy):
<rewrite><globalRules>
<rule name="ARR_server_proxy" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<action type="Rewrite" url="http://{C:0}/{R:0}" />
<conditions>
<add input="{HTTP_HOST}" pattern="*" />
</conditions>
</rule>
</globalRules>
</rewrite>
<proxy enabled="true" reverseRewriteHostInResponseHeaders="false" proxy="myproxy" />