Network Load Balancing (NLB) with IIS 7 for high availability

Recently we got a customer who wanted an inexpensive high availability solution. To keep costs down we decided to utilize NLB within Windows Server 2008 and load balance two IIS web servers. The issue we ran into was getting multiple sites to balance. It actually turned out be a very simple issue. When a request is passed to IIS it looks at the header for the site and then passes that request to the site with the same binding. I had setup the bindings in IIS 7 for the sites to the local IP addresses on each server. When our sys admin setup NLB and tried the sites one each server through the NLB public facing IP we got a 404.

Our sys admin gave me a quick crash course in NLB so I could get a simple understanding of how it worked and was setup. After watching the setup I suddenly realized what was going on. It was a great eureka moment. I knew what I had to do to fix it but I was hoping for a work around because I wanted ot keep it simple for the customer. In the end all I had to do was assign the bindings with the public facing IP of the NLB cluster, not the IP’s on the local machines. After doing this the sites worked great.

The servers we are load balancing are virtual so we simply paused one and made sure the site still worked. It worked great. If one of the servers goes down the other will take over requests. This is very simple setup. If you want to get a little more complicated and really dig into high avialability I suggest looking into ARR. Here is a link, Microsoft Application Request Routing with NLB for high availability. Have fun with that one 🙂

5 Comments

 Add your comment
  1. Hello,

    It works because you paused your VM.
    But what append if your iis services from default node server crash suddenlly ?
    nlb still work but pages are not deserves.
    NLB is not enough to have HA…

    BR,
    foobar47

  2. That’s where hardware comes into play. You need to have spare nodes to take over if one crashes, which my company does (www.gearhost.com). The whole point is to remove any single point of failure.

  3. Hello,

    Let’s say we have 2 nodes in NLB configuration. (SERVER1, SERVER2), all running IIS.

    IIS service can crash without hardware problem.
    What append if iis service stop running on SERVER1 ?

    NLB don’t look about service status and still deserve the SERVER1…

    I’m interesting on the configuration you implement to have IIS HA.

    Thanks in advance for your feedbacks.

    BR,
    foobar47

  4. Hi Mike, any news ?
    Thanks for sharing your experience.

    Cheers.

  5. Thanks you! It worked. You must ensure you Shared IP is included in the Web site bindings.

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.