Using HAProxy to load-balance multiple web servers

You have a successful website and it is time to scale out to multiple web servers to support it. HAProxy is a very fast and reliable load-balancer and proxy for TCP- and HTTP-based applications.

You can put it in front of your web servers and let it distribute the load.

Getting ready

Make sure that you have at least one node registered on your Chef server with the role web_server in its run list. The following example will set up HAProxy so that it routes all requests to all your nodes that have the web_server role.

How to do it…

Let's see how to set up a simple HAProxy balancing to all nodes that have the web_server role:

  1. Create a role called load_balancer:
    mma@laptop:~/chef-repo $ subl roles/load_balancer.rb ...

Get Chef Cookbook - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.