Trouble with health checking

I am using haproxy to load balance in front of some Oracle application servers, it is working fine, however we have built some new app servers and cannot get them to work with haproxy.

The config is a copy/paste of a config that is working for existing servers, just with new IP addresses and port numbers for the new backend servers.

When I test using lynx or curl from the haproxy server I can retrieve the test page, but haproxy is reporting a L7TOUT on the stats page and giving a 503 service unavailable error in the browser.

The config is as follows:

  listen Load-Balancer-balancernew
    bind *:5051
    mode http
    balance roundrobin

    stats enable
    stats hide-version
    stats auth statuser:statpassword
    stats uri /stats
    stats refresh 20s
    stats show-node
    stats admin if TRUE

    cookie SERVERIDbalancernew insert indirect         #inserts cookie for session persistence

    option httpclose
    option forwardfor

    option httpchk GET /forms/frmservlet?config=balancernew      #checks html file

    http-check expect status 200            #expects status 200 if anything else reports server as down
    http-check disable-on-404

    server sh1app1_5051 192.168.1.60:5051 cookie sh1app1_5051 check
    server sh1app2_5051 192.168.1.70:5051 cookie sh1app2_5051 check
    option redispatch                       #dispatches request to other server if one server down

And when I retrieve the url http://192.168.1.60:5051/forms/frmservlet?config=balancernew or http://192.168.1.70:5051/forms/frmservlet?config=balancernew in curl or lynx the page is displayed.

Any suggestions as to how I might troubleshoot would be greatly appreciated, I’ve reached the limits of my haproxy skills.

Get a packet capture. Is the backend perhaps expecting the Host header?