Should this be filed as a bug somewhere?> > 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 > } > }
Aki Tuomi
2021-Oct-20 04:46 UTC
health check passthrough not 100% in combination with haproxy
Not sure where to report this as bug. Does it work if you change the script to look like: printf 'HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n' exit 0 Aki> On 19/10/2021 23:29 Marc <marc at f1-outsourcing.eu> wrote: > > > Should this be filed as a bug somewhere? > > > > > > 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 > > } > > }