Application Request Routing (ARR) as a reverse proxy?

I have been asked if Application Request Routing (ARR) can be used as a reverse proxy - and the answer is YES!

As you may know, ARR depends on URL rewrite module to inspect the incoming requests and determine which server group the request should be routed to.  Instead of defining a server group name, you can specify the destination server directly in the Rewrite URL input box.

Below is an example of how I routed all incoming requests to another server named, "wonyoo-w2k8" and I am also sending all traffic to port 9000 (you would be defining the rewrite rule below in the URL rewrite module UI):

 

8 Comments

  • I am confused... why is it saying {R:1}, shouldn't it be {R:0}? Do R and C count from 0 or from 1? This whole forum and the tutorials are seem to be more confused than I am on the topic, mostly starting from 1 whereas the downloadable software counts from 0!

  • This article explains this in details:
    http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/

    Back-references to condition patterns are identified by {C:N} where N is from 0 to 9; back-references to rule pattern are identified by {R:N} where N is from 0 to 9. Note that for both types of back-references, {R:0} and {C:0}, will contain the matched string.

    For example in this pattern:

    www.*.com
    For the string: www.foo.com the back-references will be indexed as follows:

    {C:0} - www.foo.com
    {C:1} - foo

    Sreenshot used in this blog post uses pattern as "*", which basically means match anything and capture whatever was matched into a back reference. In that particular case both {R:0} and {R:1} will contain the same value, so you could use either one.

  • http://www.tech-faq.com/proxy-sites.shtml

    In my testing, I use shared configuration and it's been working pretty well. As you had indicated, it is such a time saver since you only need to make the changes once. Also, adding additional web servers is a simple 3 step process:

    1.
    Provision the new web server.
    2.
    Configure the server to use the shared config.
    3.
    Add the new server to the server group in ARR.

    Let me know if you are still experiencing problems.

  • Hi I tried to forward incoming requests to a different server in the local network (http://server_name/...) and it did not work. When I changed this rule to the localhost, the rule worked. Is there a limitation for forwarding requests to other servers in the LAN? thanks Jonas.

  • And another quick question: is it possible to do ARR with ftp:// or only with http:// Thanks, Jonas

  • I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

    Ruth

    http://ramupgrade.info

  • It looks like you can either reverse proxy everything (as in this example) or nothing - is that right? I tried using a rewrite rule like this at the site level (I just want to proxy traffic that matches a hostname) and thesimp,eregex "*" throws an error: http://facebook.stackoverflow.com/questions/7912831/simple-iis-redirection-expression-throws-an-error-the-expression-cont

  • Example using ARR with SharePoint 2013 and Office Web Apps behind a single IP address
    http://www.spsdemo.com/blog/_layouts/15/start.aspx#/Lists/Posts/Post.aspx?ID=380

Comments have been disabled for this content.