Hello,

Compression is enabled on a few backends, but not on the backend that
traffic is going to for these requests. However, IIS is configured to
compress the traffic.

HA-Proxy version 1.6.11 2016/12/25

Copyright 2000-2016 Willy Tarreau <[email protected]>



Build options :

  TARGET  = linux2628

  CPU     = generic

  CC      = gcc

  CFLAGS  = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement

  OPTIONS = USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1



Default settings :

  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200



Encrypted password support via crypt(3): yes

Built with zlib version : 1.2.8

Running on zlib version : 1.2.8

Compression algorithms supported : identity("identity"),
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")

Built with OpenSSL version : OpenSSL 1.0.2g  1 Mar 2016

Running on OpenSSL version : OpenSSL 1.0.2g  1 Mar 2016

OpenSSL library supports TLS extensions : yes

OpenSSL library supports SNI : yes

OpenSSL library supports prefer-server-ciphers : yes

Built with PCRE version : 8.38 2015-11-23

Running on PCRE version : 8.38 2015-11-23

PCRE library supports JIT : no (USE_PCRE_JIT not set)

Built with Lua version : Lua 5.3.1

Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT
IP_FREEBIND



Available polling systems :

      epoll : pref=300,  test result OK

       poll : pref=200,  test result OK

     select : pref=150,  test result OK

Total: 3 (3 usable), will use epoll.
Here is my config, hopefully with the internal things sanitized with "XXX"
it still makes sense. If not I can send one off list. I also removed all
the backends other than the one that the traffic is going to. I also am
doing this on my phone, so hopefully the formatting isn't a total mess...

global

        daemon

        description XXX

        group haproxy

        log 127.0.0.1 local0

        node XXX

        spread-checks 3

        tune.bufsize 32768

        user haproxy



defaults

        balance source

        errorfile 408 /dev/null

        mode http

        option abortonclose

        option allbackups

        option contstats

        option forwardfor

        option http-keep-alive

        option httpchk

        option httplog

        option prefer-last-server

        option redispatch

        option splice-auto

        option tcp-smart-accept

        option tcp-smart-connect

        stats enable

        stats refresh 30s

        stats show-desc XXX

        stats show-legends

        stats show-node XXX

        stats uri /haproxy_stats

        timeout client 180s             # Timeout applies when the client
is expected to acknowledge or send data

        timeout connect 15s             # Maximum time to wait for a
connection attempt to a server to succeed

        timeout http-keep-alive 30s     # How long to wait for a new HTTP
request after a response was sent

        timeout http-request 30s        # This timeout only applies to the
header part of the request

        timeout server 180s             # Timeout applies when the server
is expected to acknowledge or send data



mailers XXX_Mailers

        mailer XXX_SMTP XXX:25



# XXX

resolvers XXX_Resolvers

        nameserver XXX

        nameserver XXX



resolvers XXX_Resolvers

        nameserver XXX

        nameserver XXX



resolvers XXX_Resolvers

        nameserver XXX

        nameserver XXX



resolvers XXX_Resolvers

        nameserver XXX

        nameserver XXX



resolvers XXX_Resolvers

        nameserver XXX

        nameserver XXX



frontend XXX_HTTP

        bind *:80 defer-accept



        # Host header ACLs

        #-----------------------------------------------------------
--------------------------------------

       acl XXX hdr(host) -m reg -i XXX

        acl XXX_val hdr(host) -m reg -i XXX

        acl XXX_dev hdr(host) -m reg -i XXX



        acl XXX hdr(host) -m reg -i XXX

        acl XXX_val hdr(host) -m reg -i XXX

        acl XXX_dev hdr(host) -m reg -i XXX



        acl XXX hdr(host) -m reg -i XXX

        acl XXX hdr(host) -m reg -i XXX

        acl XXX hdr(host) -m reg -i XXX



        # Project ACLs

        #-----------------------------------------------------------
--------------------------------------

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX

        acl XXX url_beg -i /XXX



        # Crawler ACLs

        #-----------------------------------------------------------
--------------------------------------

        acl crawler hdr(User-Agent) -m sub -i XXX



        # Backend ACLs

        #-----------------------------------------------------------
--------------------------------------

        acl XXX nbsrv(XXX) eq 1

        acl XXX nbsrv(XXX) eq 1



        # Bypass ACLs

        #-----------------------------------------------------------
--------------------------------------

        acl XXX req.cook(XXX) -m found



        log global



        # Delete some headers

        #-----------------------------------------------------------
--------------------------------------

        # Force the use of NTLM

        # rspidel ^WWW-Authenticate:\ Negotiate$



        # Request routing

        #-----------------------------------------------------------
--------------------------------------

        # XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        # XXX

        use_backend XXX if XXX



        # If XXX cookie is set, go direct to the XXX backend, otherwise

        # try the XXX backend first, with a failover to the XXX backend if
needed

        # XXX Production

        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        # XXX Validation

        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        # XXX Development

        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



        #XXX

        use_backend XXX if XXX



        #XXX

        use_backend XXX if XXX



        # XXX

        use_backend XXX if XXX



        # XXX

        use_backend XXX if XXX



        # All other traffic

        use_backend XXX if XXX

        use_backend XXX if XXX

        use_backend XXX if XXX



frontend XXX_Monitor

        bind *:81-83

        log global

        monitor-uri /

        option forceclose



#-----------------------------------------------------------
----------------------------------------------------------------



backend XXX_Production_HTTP

        email-alert mailers XXX_Mailers

        email-alert from XXX

        email-alert level notice

        email-alert to XXX



        server XXX XXX:80 check inter 5s port 81 resolvers XXX_Resolvers
slowstart 60s

        server XXX XXX:80 check inter 5s port 81 resolvers XXX_Resolvers
slowstart 60s



        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_Resolvers

        server XXX XXX:80 backup check inter 5s port 81 resolvers
XXX_ResolversOn May 16, 2017 3:08 PM, "Aleksandar Lazic" <[email protected]>
wrote:

Hi Caleb Anthony.

Caleb Anthony have written on Mon, 15 May 2017 19:10:30 -0600:

> Hello All,
>
> I've got a strange issue with our deployment of HAProxy 1.6 where a
> user will make a request to a page, and as each page element comes
> in, the time taken shown on each file downloaded in the IE developer
> tools increases by a factor of 3, until finally the user is prompted
> for credentials, but the page load never continues. I should mention
> that this is an ASP.NET web application running with Integrated
> Windows Authentication on IIS 8. I know, I know, IE + IIS + IWA =
> terrible, but it's hard for the enterprise to not use these platforms
> internally, especially the IWA single sign on part.
>
> So a request looks like this in the developer tools:
>
> mainpage.aspx - HTTP 200 - 130.04KB - 421ms
> css file - HTTP 200 - 1.51KB - 296ms
> css file - HTTP 200 - 14.93KB - 0.96s
> css file - HTTP 200 - 13.99KB - 2.73s
> css file - HTTP 200 - 29.92KB - 8.14s
> css file - HTTP 200 - 23.44KB - 24.36s
> webresource.axd - Pending - Pending - Pending (this is where the user
> is prompted for credentials)
>
> And on that last file is where it then prompts for credentials, which
> never works because I believe that HAProxy has hit the timeout and
> closed the connection, and breaking IWA.
>
> I should mention that our HAProxy server works great 99.9% of the
> time, and we do a lot of L7 load balancing on different URLs, and
> host headers, and we handle a good amount of traffic that returns
> page elements in ms, and it also handles Integrated Windows Auth fine
> - most of the time. It's just these occasional things that have me at
> a loss.
>
> Any suggestions from the mailing list?

Is compression enabled?
In more general way.
Please can you send us the output of haproxy -vv and the haproxy conf,
thanks

Can you reproduce this behavior only for one client/enduser or for
several?

Regards
aleks

Reply via email to