global log {{ local_host }} local0 log {{ local_host }} local1 notice maxconn 20000 user haproxy group haproxy spread-checks 0 defaults log global mode tcp option tcplog option dontlognull retries 3 {%- if haproxy_queue_timeout %} timeout queue {{ haproxy_queue_timeout }} {%- else %} timeout queue 5000 {%- endif %} {%- if haproxy_connect_timeout %} timeout connect {{ haproxy_connect_timeout }} {%- else %} timeout connect 5000 {%- endif %} {%- if haproxy_client_timeout %} timeout client {{ haproxy_client_timeout }} {%- else %} timeout client 30000 {%- endif %} {%- if haproxy_server_timeout %} timeout server {{ haproxy_server_timeout }} {%- else %} timeout server 30000 {%- endif %} listen stats bind {{ local_host }}:{{ stat_port }} mode http stats enable stats hide-version stats realm Haproxy\ Statistics stats uri / stats auth admin:{{ stat_password }} {% if frontends -%} {% for service, ports in service_ports.items() -%} frontend tcp-in_{{ service }} bind *:{{ ports[0] }} {% if ipv6 -%} bind :::{{ ports[0] }} {% endif -%} {% for frontend in frontends -%} acl net_{{ frontend }} dst {{ frontends[frontend]['network'] }} use_backend {{ service }}_{{ frontend }} if net_{{ frontend }} {% endfor -%} default_backend {{ service }}_{{ default_backend }} {% for frontend in frontends -%} backend {{ service }}_{{ frontend }} balance leastconn {% for unit, address in frontends[frontend]['backends'].items() -%} server {{ unit }} {{ address }}:{{ ports[1] }} check {% endfor %} {% endfor -%} {% endfor -%} {% endif -%}