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:
Create a role called
load_balancer
:mma@laptop:~/chef-repo $ subl roles/load_balancer.rb name 'load_balancer' description 'haproxy load balancer' run_list('recipe[haproxy::app_lb]') override_attributes( 'haproxy' => { 'app_server_role' => 'web_server' }
Upload the new role to the Chef server:
mma@laptop:~/chef...