2

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
  • This is a very creative way to fix ARR's broken health check feature. According to the documentation traffic should go to the healthy node, but in my experience when one application pool on one node is brought down (for updating) then ARR only serves 500 errors for any request to the app, rendering all the redundant nodes useless. This is in my opinion a major bug, but I'm afraid it won't be fixed :-( Commented Jan 4, 2024 at 14:33

1 Answer 1

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.

3
  • 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. Commented May 7, 2014 at 13:26
  • No, NLB can't provide app-level failover, since it only runs at OSI level 3. Commented Feb 12, 2015 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. Commented Feb 13, 2015 at 1:14

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.