HAProxy loadbalancing for SOAP interface


#1

Hello everyone,

I try to using HAproxy do the Load balancing for SOAP interface, the haproxy configuration like this:

frontend ft_DMC_L7_HTTP_50403
    bind    haproxy-lh:50403
    mode    http
    log    global
    option    httplog
    timeout client    900s
    maxconn    2000
    acl allowed_dmc_uris  url_reg  -i ^/(dmc)
    acl allowed_ADDWeb_uris  url_reg  -i ^/(ADDWeb/)
    http-request deny unless allowed_dmc_uris or allowed_ADDWeb_uris
    use_backend bk_DMC_L7_HTTP_50403_ADDWeb if allowed_ADDWeb_uris
    default_backend    bk_DMC_L7_HTTP_50403

backend bk_DMC_L7_HTTP_50403
    balance    roundrobin
    mode    http
    log    global
    option    httplog
    option    forwardfor    except    127.0.0.1/8
    cookie    JSESSIONID    prefix    nocache
    default-server inter 3s rise 2 fall 3 slowstart 0
    option    httpchk HEAD / HTTP/1.0    # Advanced http check
    timeout server    120s    # Server inactivity timeout
    server SRV01 SRV01:50400 maxconn 2000 weight 10 cookie E1 check
    server SRV02 SRV02:50400 maxconn 2000 weight 10 cookie E2 check

backend bk_DMC_L7_HTTP_50403_ADDWeb
        balance roundrobin
        mode    http
        log     global
        option  httplog
        timeout server    25s
        timeout connect   10s
        server SRV01 SRV01:50400 maxconn 2000 weight 10 check
        server SRV02 SRV02:50400 maxconn 2000 weight 10 check

But the result is client didn’t get soap response, tcpdump capture display “TCP ACKed unseen segment”.
6 0.622194 10.200.99.5 10.200.101.248 HTTP/XML 760 POST /ADDWeb/services/SetSubscriberDetails HTTP/1.1
7 0.659787 10.200.101.248 10.200.99.5 TCP 54 [TCP ACKed unseen segment] 50403→35061 [ACK] Seq=17652722 Ack=1129711 Win=7296 Len=0
8 1.136932 10.200.101.248 10.200.99.5 HTTP/XML 589 [TCP ACKed unseen segment] HTTP/1.1 200 OK

Kindly help me for this issue.


#2

More importantly the tcpdump shows “HTTP/1.1 200 OK” which means a positive HTTP response is send towards the client. So there doesn’t seem to be any problem.

Will need full pcap captures to investigate further.


#3

Hi Lukas,

Thanks for your reply,
I have uploaded soap.cap file in the https://cloud.sicap.com/index.php/s/wq7UQAv1RvYDddK

Best Regards,
Frank


#4

Not sure what happens here. The answer is there, but it seems the TCP connection is messed up. Does the request actually fail on the application level? If yes, with a timeout?

How exactly did you take this capture? On the haproxy box, or on the client? Are there any TCP intercepting middleboxes between the client and the server?

Can you exclude a client problem?