Reverse proxy for 3 internal web servers RRS feed

  • Question

  • User-47387402 posted


     Sorry for my bad english (i'm french :))

     I try to figured out how to setup this famous ARR for reverse proxy for three internal web servers.

     I'd like to have this configuration

    Wan (www.domaine.com: 80)--> Reverse proxy (IIS7 with ARR module installed)  --> serveur1 :80

    Wan (inside.domaine.com:80) --> Reverse proxy (IIS7 with ARR module installed) --> serveur2 :80

    Wan (mail.domaine.com:443) --> Reverse proxy (IIS7 with ARR module installed) --> serveur3 :443

     Does ARR work for that ? Where can i find all good documentation to realize this configuration ???

    I'm totally new on windows 2008 servers and IIS7... used to work with 2003 and IIS 6....

     All help will be appreciated !

     Thanks !

    Wednesday, May 13, 2009 3:45 PM

All replies

  • User-1853252149 posted

    ARR is for application routing, what you really want is a proxy server such as ISA Server.


    Thursday, May 14, 2009 8:44 PM
  • User-550039548 posted


    Yes you can do that with ARR

    In IIS manager click on your server node (not a web site) in the left tree and from there open "Application Request Routing"

    On that page check the "Enable proxy" check box at the top.  Still on that page, in the "Proxy Type" section at the bottom make sure the "Use URL Rewrite to inspect incoming requests" is checked and add serveur1 in the Reverse proxy text box. Click Apply to save your changes.

    This will create a URL rewrite rule that will redirect all incoming requests to serveur1.

    Now we are going to modify this rules and add other rules for the other servers.

    Click on your server node again and open "URL Rewrite".  There you should see a rule called ARR_server_proxy.  This is the basic rule that was created previously.

    Select that rule and click edit.  Everything on that page should be good to route requests to serveur1 but it's missing the condition to route only the requests coming in for  www.domain.com.  So add a new condition with the following input values

    Condition input: {HTTP_HOST}

    Check if input string: Matches the pattern

    Pattern: www.domain.com

    Now click ok and Apply to save your rule.

    This rule will now route every requests for www.domain.com to serveur1.

    From there you should go back to the rules page and add new rules identical to this one but with conditions for your other domain names and the other servers.


    You can check at the bottom of this page to see all of the HTTP headers and server variables you can use in conditions.


    Bonne chance!




    Saturday, May 16, 2009 12:24 AM
  • User-47387402 posted

    You're excellent !

     Thanks so much, it's exactly what i needed !

     I still have a problem with OWA 2003 published behind ARR, but i'll try try and try !!!

     Thanks again (and if you have the owa solution i'll take it ! !)

    Monday, May 18, 2009 2:12 PM
  • User876550139 posted

    I want to do something similar but also being new to IIS and ARR having problems getting it to work.

    Would like to configure an IIS server as a reverse proxy such that I can access internal servers from it.

    For example how can I configure it such that

    http://www.iisserver.mycompany.com//internal1 would route to http://internal1.mycompany.com


    http://www.iisserver.mycompany.com/internal2 would route to http://internal2.mycompany.com

    as well as rewrite URLs in the responses. I seemed to make it work for one server but then I screw it up trying to add another and then can't even get it working for the 1 server case again.

    Any help would be appreciated.

    Monday, May 18, 2009 5:24 PM
  • User-550039548 posted

    You can do this by doing the same as what's above but you wont need any conditions.  Instead you should use the pattern in the Match URL section of your rule

    RequestedURL: Matches the pattern

    Using: Wildcard

    Pattern: http://www.iisserver.mycompany.com/internal1/*

    In the Action section you should have something like this

    Action Type: Rewrite

    Rewrite URL: http://internal1.mycompany.com/{R:0}

    And finally you can add another rule for your internal2 server


    Tuesday, May 19, 2009 12:11 PM
  • User-47387402 posted

    Jdoug, everything is explained in PascalN post !

    It's exactly what you need !

    Wednesday, May 20, 2009 4:22 AM
  • User241794988 posted

    I believe the examples shown in this forum post would also be helpful in understanding how different rules can be used for routing requests: http://forums.iis.net/t/1158459.aspx

    Let me know if you have further problems.


    Saturday, June 20, 2009 11:22 PM
  • User-266702555 posted

    very interesting post.. can you please post the same procedure for IIS 6.0


    Thank you,

    Sunday, August 14, 2011 9:50 AM
  • User241794988 posted

    ARR, as an IIS Extension, can only be applied to IIS7.0 and IIS 7.5.   If you are interested in using IIS6 as application/content servers in ARR server farm, the procedure is the same on the ARR server.   But you will not be able to run ARR on IIS6.0.

    Monday, August 15, 2011 1:17 PM
  • User-1153654175 posted

    PascalN - Excellent post and really helped.  I have one additional piece to do onto this example.

    On my example I need to use hostheaders for multiple sites on Server1,Server2, andServer3.

    The URL_Rewrite won't pickup the correct hostheader now and ends up resolving to the default site.

    Is there a way to implement this with the soltuion you provided so that the target servers still pickup correct hostheader ?



    Tuesday, January 10, 2012 7:38 AM
  • User732235148 posted

    Hi, I realise this is an old post, but maybe someone can help me with an identical problem I'm having.

    I need to give acces to some internal webservers.

    So I started with only 1. My final goal is to route all requests arriving at http://w3.domain.com/intra to an internal webserver at http://www.local.lan

    If I set the pattern to * and rewrite to http://www.local.lan/{R:0} everything works as a charm. When surfing to http://w3.domain.com, all pages etc are accessible. When I change the pattern to http://w3.domain.com/* (or http://w3.domain.com/intra/*, or http://w3.domain.com*) everything stops working....(404 error). Even adding the index page (http://w3.domain.com/index.htm) isn't working

    Any suggestion on this would be helpful 

    Saturday, October 27, 2012 10:18 AM