59 lines
1.4 KiB
INI
59 lines
1.4 KiB
INI
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
|
|
timeout queue 1000
|
|
timeout connect 1000
|
|
{% 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 {{ stat_port }}
|
|
mode http
|
|
stats enable
|
|
stats hide-version
|
|
stats realm Haproxy\ Statistics
|
|
stats uri /
|
|
stats auth admin: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 -%}
|