health check passthrough not 100% in combination with haproxy

Marc Marc at f1-outsourcing.eu
Sun Oct 17 02:15:23 EEST 2021


I have been trying to get a simple health check in haproxy to work. But somehome the haproxy request is differently handled then a curl request, which generates a socket error in haproxy.

The health script echos these lines, with this config[2]

    echo -ne "HTTP/1.1 200 OK\r\n"
    echo -ne "Content-Length: 0\r\n"
    echo -ne "\r\n"
    exit 0

The curl request generates ok, haproxy generates socket error. The haproxy=yes, reuseport=yes do not seem to resolve anything. If stop dovecot and run "dovecot-health-check.sh | nc -l 192.168.10.46 5001" then the haproxy check is ok. So I guess the script is ok. But what is dovecot then doing with it's output when haproxy is requesting it?



[1]
https://discourse.haproxy.org/t/httpck-on-bash-script-results-in-socket-error/5647/16

[2]
service health-check {
  executable = script -p /usr/local/sbin/dovecot-health-check.sh
  inet_listener health-check {
    port = 5001
    haproxy = no
    reuse_port = no
 }
}


More information about the dovecot mailing list