ARR Binding Trick-Week 36

You can find this week’s video here.

This week's video shows a specific trick to allow a reverse proxy—Application Request Routing in this case—how to use only one IP address per web servers while supporting many distinct sites. This is extra useful if you have a wildcard domain name, or a large number of domain names pointing to a VIP, and you have multiple sites to manage.

I want to show you a trick that allows you to use just a single IP address per web server, no matter how many sites you have. And, you can do this with wildcard domain names or large lists of domain names—with ease.

Last week we talked about the three web node binding options. They are: A) by host header, B) by IP Address, and C) by port. They work for many situations, but what if you have many sites and many servers and you want your virtual IPs (VIPs) to accept traffic for any domain name? For example, imagine that you want *.mycity.com to point to a dedicated IP address, and you manage multiple sites like this.

This week I cover this specific situation and show a handy trick to manipulate the HTTP_HOST (domain name) on the way through to make a potentially unruly situation much more manageable.

This is now the 11th week in a mini-series on web farms, and the 36th week of the entire series. You can view past and future weeks here:http://dotnetslackers.com/projects/LearnIIS7/

You can find this week’s video here.

6 Comments

  • Thanks a lot for the tutorial! However the video stops inexplicably at 5:55. Is there a chance you can re-upload please?

  • Hi Rodolfo,

    Thanks for mentioning this. I checked and it appears to work now so I wonder if there was a temporary YouTube issue, or maybe a temporarily blip with your internet connection. In any case, give it a try now. I believe it will work for you.

  • Hi Scott, i have a similar setup as shown in your video but i cant seems to get it working.

    i have 1 public ip nat to a web server and this webserver serves multiple sites that are proxied from a backend iis server running on 1 internal private ip on port 80.

    do i need to create server farm? also, under AAR, do i need to enable proxy before creating inbound rules?

  • Hi Cy,

    Since you're just going to one web server, you can use the reverse proxy functionality rather than setting up a web farm. You can create a rule from IIS at the site level, and select "Reverse Proxy".

    If you are just supporting standard domain names, like 1 domain name per site, then you don't need to use the trick that I mentioned in the video. Using the similar configuration, it will "just work" as long as your using HTTP and one domain name per site. The host header passed to the ARR server will be used in the binding on the web server too.

  • Hi Scott, thanks for your reply. Perhaps let me describe my environment for better illustration.

    I have 1 webserver with 1 public ip, serving multiple domains and these domains are to be proxied to an internal webserver (1 internal IP). Example for these domains are abc.com, def.com xyz.com, etc.

    I tried using ARR, proxy all request, but on the internal webserver, only the domain with host *, ip address * will be served from the public facing webserver. Creating a rule at site level didn't work either or I probably got the wrong configuration which I am so unfamiliar with.

    Hope you can enlight me. Thank you.

  • Hi CY,

    I don't quite understand. Would you mind explaining further? Here's how the flow should work:

    - On the public webserver, create a server farm with one server which is the IP address of your internal web server.
    - create a rule that sends all traffic through that server farm (unless you have any exceptions that you want to ignore)
    - on the web server create bindings where the IP address is unassigned but the host header is abc.com or def.com or xyz.com. In essence that's all that is required.

Comments have been disabled for this content.