3

I have 3 locations, each with their own server (s1.mysite.com, s2.mysite.com, s3.mysite.com). These are all part of Site: app.mysite.com.

I'd like to use ARR to forward request to specific servers in the farm based off what location the request is coming from, (request from site 1 goes to s1.mysite.com which is local to their location) while allowing for failover to one of the others in the case of a problem with that specific server.

I know how to distribute the request based off the query string to the specific server by DNS name (s1.mysite.com), but that name wouldn't work if that server goes down.

Can I acheive this redudancy and distribution of work in this fashion using Microsoft ARR?

Jason Carter
  • 131
  • 4

1 Answers1

0

Depending on your reasoning for this kind of setup, possible solutions may change. I see two reasons that could be in play here:

  • Trying to achieve high availability while preferring app servers which will give the best response times (scenario 1)
  • Presenting customized content based off what site a user is located (scenario 2)

Scenario 1

If you are trying to achieve HA and get the best response times, then you will run into an issue due to all requests needing to go through the ARR server first. A way around this would be to have an ARR at each site, use DNS to point users to their site's ARR server, and then use the "Least response time" load balancing algorithm. This will theoretically point users at site 1 to s1.mysite.com while also providing fail over to s2 and s3 if s1 goes down.

However, if a network issue is causing s1.mysite.com to be unavailable then it might also cause the ARR server in site 1 to also be unavailable. However, it would shield you from application failures on s1.mysite.com.

Scenario 2

There does not appear be anything available out of the box to perform the type of routing that you wish to accomplish. However, there are API's exposed to allow you to create a Custom Rewrite Provider for URL Rewrite. Information on doing this can be found Here. You may be able to use information from server variables, request headers, or even query string parameters in conjunction with a custom rewrite provider to perform the type of routing you wish to achieve.

pkeenan
  • 1,521
  • 1
  • 9
  • 6