I've got a slightly different approach to load balancing here, its more for maintenance and high-availability at the application rather than at the physical host.

Say I have 2 web services, which I deploy to 2 web servers. So far, its easy to set up HAProxy to load-balance between them, and to direct traffic to either host. What I'd like to do is to be able to stop 1 of the web services on a host, which should make the LB direct calls to the other host, without affecting the other web service.

So I would stop WS1 on Host1, and the LB would direct traffic to WS1 running on Host2, but WS2 would still be running on both hosts.


haproxy supports this -- check out its "health check" feature.


Looks like there's already a servervault posting that answers this if I understand what your asking?

Is there a load balancer that will allow me to take down a server manually when deploying?

We use a very similar setup with Windwos Network Load Balancer, and drainstopping works great.

Edit 1:

Ok, so a few things:

  1. As a best practice, you should group servers that are similar. So if you have website A, B and C. Those same web sites should reside on all servers in a load balanced cluster. You should not have a setup where server 1 contains site A and B and server 2 contains sites A and C. The reason i mentioned this, as in your example, it wouldn't matter if you drainstopped an entire server, even if its to work on just one site. In fact, with IIS, I would highly reccomend it (assuming your using IIS).
  2. Regardless of point 1, what you could do, is have a seperate load balanced IP for each "web service" and then you could drainstop each individual site. I don't think you could expect to have one load balanced IP that's used by multiple site and expect to be able to only drainstop one. However, I'm not that keen on HAproxy, and I'd have to muck around in MS NLB to confirm that.

Does that help at all?

  • no, I'm asking can I take down a running service on a host. Not taking down the entire host. Not all systems run a single web server with all services running inside it, imagine I have 10 services all running on different ports as an example (more likely, with name-based web services all running on port 80, each one an individual exe). I want to LB each service individually. – gbjbaanb Jan 5 '12 at 23:27
  • see my edits... – Eric C. Singer Jan 6 '12 at 1:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.