Skip Ribbon Commands
Skip to main content

Load Balancing SharePoint on Azure Virtual Machines

Make your patching process easier too

Andrew Walman

07/08/2013

Azure's default load balancing mechanism presents challenges for virtual machines running SharePoint. When load balancing is set up for the first time, it is using a simple TCP check on port 80 to see if the virtual machine responds on that port – if it fails to respond to two successive checks (which happen every 15 seconds) that machine is removed from the load balancer.

The problem with this configuration is that port 80 will respond pretty much all the time – even if your application pool is stopped, and users are receiving a “503 – Service Unavailable” error. So the Azure platform includes the ability to add http level load balancing probes, to check for a 200 response instead. This ensures the web server is actually responding with content, and you can even direct it at a particular page – e.g. health.aspx.

This is fine for virtual machines that run web services under the default web site, with a port 80 binding. However, SharePoint typically has a number of applications under IIS, all with different bindings – and SharePoint uses host headers to distinguish one from another. These map back to alternate access mappings, so when a request is received through an IIS application, SharePoint then responds with the correct content, served in the context of a particular security zone. Each SharePoint application will also have its own application pool, generally running as a distinct user account. The upshot is, even the http load balancing probe won’t know if a SharePoint application is having issues.

There is a way to bring all this together though. By changing the default web site to run in the same application pool as the SharePoint site(s) you wish to load balance, you can have the load balancer respond to issues with that application pool instead. The limitation is, you can only monitor one application pool, not a problem if all your SharePoint sites run in the same pool, but this won’t necessarily be the case. I suppose you could add further “dummy” load balanced ports/probes, with a corresponding non-SharePoint IIS application that responds on that port to get around this.

A useful side effect of this is that stopping the default web site on a server removes that server from the load balancing – useful when you need to perform maintenance for example. One thing to look out for – ensure your SharePoint application pool identity has access to the default web site’s content directory, and as always an IISReset seems to sort everything out when switching app pools on an active server.

The end result is that if/when SharePoint the application pool suffers an outage, or is recycling, the load balancing probe will pick this up and stop sending requests to that server. As soon as the application pool has recovered, the next load balancing check will add the server back. This includes the daily application pool recycles early in the morning – so it should be possible to achieve genuine 100% uptime using this solution.


 About us

Fuse Collaboration Services is a Cloud Solution Provider and Microsoft Gold Partner specialising in delivering SharePoint, Skype for Business, and Azure cloud-based solutions. Based in Northampton, UK.

Microsoft Gold Partner Logo showing 5 competencies

Read more

 Latest Tweets

 Latest Blog

 

 

Get single sign-on for all apps3995<p class="lead">​​​Are you looking for an identity-as-a-service (IDaaS) solution that solves your biggest IT challenges without compromising user experience?</p><p class="lead">With Azure Active Directory, the Microsoft IDaaS solution, you can streamline the employee experience with single sign-on capabilities and reduce the complexity of managing identity, security, and access to your company’s critical data. You get a proven solution that allows you to&#58;​</p><hr />​ <div class="lead"><div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image004.png" alt="" />​ ​ <div class="media-body">​​Quickly adopt cloud services​</div></div></div>​ <div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image006.png" alt="" /> <div class="media-body">Improve application security</div></div></div>​ ​</div>​ <div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image008.png" alt="" /> <div class="media-body">Empower employees with access to world-class cloud apps</div></div></div><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image010.png" alt="" /> <div class="media-body">Monitor application usage and protect your business</div></div></div></div>​ <div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image012.png" alt="" /> <div class="media-body">Easily and securely manage employee and vendor access</div></div></div><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image014.png" alt="" /> <div class="media-body">Secure remote, mobile access to on-premises apps</div></div></div>​ </div><div class="row"><div class="col-md-6">​ <div class="media"> <img class="img-responsive pull-left" src="/ourblog/Blog%20Site%20Images/image016.png" alt="" /> <div class="media-body">Implement consistent, self-service application access management</div></div></div>​​​ </div></div><hr /><p class="lead"><a href="/_layouts/15/FIXUPREDIRECT.ASPX?WebId=4fc45909-2b6d-48b9-bcf9-a446e9d472d6&amp;TermSetId=c98895cd-d37f-4406-9cff-5480b4f829b6&amp;TermId=218eb0be-10f6-490a-82a7-a7fd47c8de90">Contact Fuse</a> to discuss how we can help implement IDaaS within your organisation, using our expertise and experience to reduce risk and project length.​</p> <div class="well well-lg"><p class="lead">Are you curious about how Azure Active Directory can work for you? <a href="/_layouts/15/FIXUPREDIRECT.ASPX?WebId=4fc45909-2b6d-48b9-bcf9-a446e9d472d6&amp;TermSetId=c98895cd-d37f-4406-9cff-5480b4f829b6&amp;TermId=721159e3-34c0-40dc-8028-ae2e2f2e79e4">Let us show you how​</a>!​</p></div>​​a.walman@fusecollaboration.com | Andrew Walman | 693A30232E777C6675736563735C612E77616C6D616E i:0#.w|fusecs\a.walman17/01/2018 00:00:002018-01-17T00:00:00Zno matter where they liveAzure Active Directory, the Microsoft IDaaS solution20/01/2018 10:35:40149htmlFalseaspx

 Contact us

Our address
12-14 Brookfield, Duncan Close
Moulton Park, Northampton
NN3 6WL
P: +44(0)1604 797979
Contact Us