[[ha-aa-haproxy]] === HAproxy Nodes HAProxy is a very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for web sites crawling under very high loads while needing persistence or Layer 7 processing. Supporting tens of thousands of connections is clearly realistic with todays hardware. For installing HAproxy on your nodes, you should consider its http://haproxy.1wt.eu/#docs[official documentation]. Also, you have to consider that this service should not be a single point of failure, so you need at least two nodes running HAproxy. Here is an example for HAproxy configuration file: ---- global chroot /var/lib/haproxy daemon group haproxy maxconn 4000 pidfile /var/run/haproxy.pid user haproxy defaults log global maxconn 8000 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen dashboard_cluster bind :443 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:443 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:443 check inter 2000 rise 2 fall 5 listen galera_cluster bind :3306 balance source option httpchk server controller1 10.0.0.4:3306 check port 9200 inter 2000 rise 2 fall 5 server controller2 10.0.0.5:3306 check port 9200 inter 2000 rise 2 fall 5 server controller3 10.0.0.6:3306 check port 9200 inter 2000 rise 2 fall 5 listen glance_api_cluster bind :9292 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:9292 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:9292 check inter 2000 rise 2 fall 5 listen glance_registry_cluster bind :9191 balance source option tcpka option tcplog server controller1 10.0.0.1:9191 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:9191 check inter 2000 rise 2 fall 5 listen keystone_admin_cluster bind :35357 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:35357 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2.42:35357 check inter 2000 rise 2 fall 5 listen keystone_public_internal_cluster bind :5000 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:5000 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:5000 check inter 2000 rise 2 fall 5 listen nova_ec2_api_cluster bind :8773 balance source option tcpka option tcplog server controller1 10.0.0.1:8773 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8773 check inter 2000 rise 2 fall 5 listen nova_compute_api_cluster bind :8774 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:8774 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8774 check inter 2000 rise 2 fall 5 listen nova_metadata_api_cluster bind :8775 balance source option tcpka option tcplog server controller1 10.0.0.1:8775 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8775 check inter 2000 rise 2 fall 5 listen cinder_api_cluster bind :8776 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:8776 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8776 check inter 2000 rise 2 fall 5 listen ceilometer_api_cluster bind :8777 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:8774 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8774 check inter 2000 rise 2 fall 5 listen spice_cluster bind :6082 balance source option tcpka option tcplog server controller1 10.0.0.1:6080 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:6080 check inter 2000 rise 2 fall 5 listen neutron_api_cluster bind :9696 balance source option tcpka option httpchk option tcplog server controller1 10.0.0.1:9696 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:9696 check inter 2000 rise 2 fall 5 listen swift_proxy_cluster bind :8080 balance source option tcplog option tcpka server controller1 10.0.0.1:8080 check inter 2000 rise 2 fall 5 server controller2 10.0.0.2:8080 check inter 2000 rise 2 fall 5 ---- After each change of this file, you should restart HAproxy.