1

Given:

  • one ASP.NET web application
  • 2 Windows servers with IIS installed (no more servers allowed)

I want to enable load balancing / failover for that application, on both server and application levels.

My plan is:

1) Install the web application on both servers, under IIS.

2) For the server-level load balancing / failover, enable Microsoft NLB

3) For the application level load balancing / failover, I'm tempted to use ARR on each server. So, each server will host both ARR and a web application. Each ARR instance will load-balance requests either locally either to the other server.

Is the last point achievable and viable?

My only constraint: 2 servers, no more.

enter image description here

1 Answers1

2

Typically you would have ARR on the NLB level, directing traffic to the 2nd level Content servers in the farm who serve the same/shared IIS config (same applications).

See Achieving High Availability and Scalability - ARR and NLB

In your scenario, you don't really need ARR - you just want to NLB between 2 content servers, which will allow for 1 server to be down and traffic still go to the server that is up.

ARR will grant you Reverse Proxy / Rewriting functionality, but you can also do URL Rewriting without ARR so, be sure what it is you are wanting to do as ARR is typically only needed for managing farms of servers IMO.

Brock Hensley
  • 589
  • 6
  • 12
  • NLB will for sure provide load-balancing / failover on the server level, however I'm not sure it can provide failover on the application level (the scenario where the server is up but the web app is down). That's why I'm exploring the ARR idea, because it can check the health of the web app. – Maxim Gueivandov May 07 '14 at 13:26
  • No, NLB can't provide app-level failover, since it only runs at OSI level 3. – Roy Tinker Feb 12 '15 at 18:50
  • Yes, unless you use a powershell script to check for app availability, but that's getting messy/workaround-ish. I prefer to delegate that responsability to ARR. – Maxim Gueivandov Feb 13 '15 at 01:14