First time posting so please be genial :)
I'm having trouble with the server check option for haproxy. I'm running HA-Proxy version 1.5.2 with two RHEL 7.2 backend web servers. There is currently no configuration on the backend servers, httpd is simply turned on and the welcome page is available from each server directly. This config works great until I add the check option to the server line. Once I do that I get 503 when targeting the vIP but its fine targeting the backend servers directly.
One thing of note, this haproxy is acting as an LB for may services and the server check option is working fine in other places. I've done a fair amount of googling but haven't been able to find exactly what the server check option is expecting on the web server side. I'm expecting the issue to be with the backend but I don't know where it could be.
The server names have changed to protect the innocent. Seems like a pretty straight forward config, any thoughts?
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
## turn on stats unix socket
stats socket /var/lib/haproxy/stats level admin
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option httpchk
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen stats *:1936
stats enable
stats uri /
frontend server-check-fail-fe
bind xx.xx.xx.xx:80
default_backend server-check-fail-be
backend server-check-fail-be
balance roundrobin
server server1 server1.fqdn.com:80 check
server server2 server2.fqdn.com:80 check