53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package haproxy
|
|
|
|
const haproxyConfigTemplate = `global
|
|
daemon
|
|
#chroot /var/lib/haproxy
|
|
chroot /usr/share/haproxy
|
|
pidfile /run/haproxy.pid
|
|
user haproxy
|
|
group haproxy
|
|
maxconn 20000
|
|
defaults
|
|
mode tcp
|
|
log global
|
|
retries 2
|
|
timeout connect 3000ms
|
|
timeout server 5000ms
|
|
timeout client 5000ms
|
|
timeout tunnel 3600s
|
|
timeout check 10s
|
|
frontend stats
|
|
mode http
|
|
bind 127.0.0.1:8404
|
|
stats enable
|
|
stats uri /stats
|
|
stats refresh 10s
|
|
stats admin if LOCALHOST
|
|
{{ range $item := .LoadBalancers -}}
|
|
{{ range $port := $item.Ports -}}
|
|
frontend fr_{{ $item.Name }}_{{ $port.Port }}
|
|
bind {{ $item.IP }}:{{ $port.Port }}
|
|
{{- range $opt := $item.Options.Frontend }}
|
|
option {{ $opt }}
|
|
{{- end }}
|
|
# option tcplog
|
|
# option splice-request
|
|
default_backend ba_{{ $item.Name }}_{{ $port.Port }}
|
|
backend ba_{{ $item.Name }}_{{ $port.Port }}
|
|
balance roundrobin
|
|
{{- range $opt := $item.Options.Backend }}
|
|
option {{ $opt }}
|
|
{{- end }}
|
|
# option splice-response
|
|
# option httpchk GET /
|
|
default-server inter 3s downinter 10s fall 2 rise 2 on-marked-down shutdown-sessions {{ $item.Options.DefaultServer }}
|
|
# send-proxy-v2
|
|
# check-send-proxy
|
|
# port <healthCheckNodePort>
|
|
{{- range $srv := $port.Servers }}
|
|
server {{ $srv.Name }} {{ $srv.IP }}:{{ $srv.Port }} check
|
|
{{- end }}
|
|
{{ end -}}
|
|
{{ end -}}
|
|
`
|