У меня есть следующие инструкции для HaProxy в моем docker -компонентном файле: (Общий проект имеет 2 веб-приложения, 1 HaProxy, 1 консула и 1 регистратор, с консул-шаблоном в разных контейнерах)
haproxy:
build: ./haproxy
container_name: my-haproxy
image: anthcourtney/haproxy-consul
ports:
- "80:80"
depends_on:
- web1
- web2
и мой файл конфигурации для HaProxy:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
debug
stats timeout 30s
maxconn {{with $maxconn:=key "service/haproxy/maxconn"}}{{$maxconn}}{{else}}4096{{end}}
defaults
log global
option httplog
option dontlognull
mode http{{range ls "service/haproxy/timeouts"}}
timeout {{.Key}} {{.Value}}{{else}}
timeout connect 5000
timeout client 50000
timeout server 50000{{end}}
frontend http-in
bind *:80{{range $i,$a:=services}}{{$path:=.Name}}{{range .Tags}}{{if eq . "web"}}
acl app{{$i}} path_beg -i /{{$path}}{{end}}{{end}}{{end}}
{{range $i,$a:=services}}{{range .Tags}}{{if eq . "web"}}
use_backend srvs_app{{$i}} if app{{$i}}{{end}}{{end}}{{end}}
{{range $i,$a:=services}}{{$path:=.Name}}{{range .Tags}}{{if eq . "web"}}
backend srvs_app{{$i}}
mode http
balance roundrobin
option forwardfor
option httpchk HEAD / HTTP/1.1\r\nHost:localhost
reqrep ^([^\ ]*\ /){{$path}}[/]?(.*) \1\2{{range $c,$d:=service $a.Name}}
server host{{$c}} {{.Address}}:{{.Port}} check{{end}}{{end}}{{end}}{{end}}
listen stats
bind *:1936
stats enable
stats uri /
stats hide-version
stats auth someuser:password
Однако, когда я пытаюсь получить доступ к localhost: 80 с моей машины, я получаю ошибку 503, хотя предполагается, что она демонстрирует балансировку нагрузки между 2 веб-приложения. Может кто-то указать на ошибку здесь.
Более того, в логах, кроме всего прочего, я продолжаю получать это кроме HaProxy:
my-haproxy | 2020/02/04 14:17:40.012037 [WARN] ("key(service/haproxy/maxconn)") Consul returned no data (does the path exist?)
Редактировать: 2 (после удаления всех шаблонов из глобальные и значения по умолчанию)
my-haproxy | [WARNING] 041/072001 (18) : Stopping frontend GLOBAL in 0 ms.
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8600" from "/consul/data/services/2c5b6863ee843c26f0f1f9c52a6b2fff"
registrator | 2020/02/11 07:20:01 added: 046e2c2e8633 bc50c3653d4d:web2:8080
my-haproxy | [WARNING] 041/072001 (18) : Stopping frontend http-in in 0 ms.
my-haproxy | [WARNING] 041/072001 (18) : Stopping backend srvs_app8 in 0 ms.
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8600:udp" from "/consul/data/services/42646ba7fcab56130cbe493c84854907"
registrator | 2020/02/11 07:20:01 added: 7cd045815528 bc50c3653d4d:my-haproxy:80
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8302:udp" from "/consul/data/services/6d390884564cd5e9dff576894c416ba0"
my-haproxy | [WARNING] 041/072001 (18) : Stopping proxy stats in 0 ms.
registrator | 2020/02/11 07:20:02 ignored: 40197a360a2f no published ports
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8301" from "/consul/data/services/8bbf7b5e87794fea9bc7d7769156f703"
my-haproxy | [WARNING] 041/072001 (18) : Proxy GLOBAL stopped (FE: 0 conns, BE: 0 conns).
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:hello1:80" from "/consul/data/services/8e06edb65e55e0705610ab8e60113e5d"
my-haproxy | [WARNING] 041/072001 (18) : Proxy http-in stopped (FE: 0 conns, BE: 0 conns).
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8300" from "/consul/data/services/ae07df9ad976800dbacfa0bfe00786cb"
my-haproxy | [WARNING] 041/072001 (18) : Proxy srvs_app8 stopped (FE: 0 conns, BE: 0 conns).
consul | 2020/02/11 07:20:00 [DEBUG] agent: restored service definition "bc50c3653d4d:consul:8301:udp" from "/consul/data/services/b551c07eb96191f31a5b0f5a88a5ff69"
my-haproxy | [WARNING] 041/072001 (18) : Proxy stats stopped (FE: 0 conns, BE: 0 conns).