Le 24/01/2017 à 10:55, Vladimir Mihailenco a écrit :
This is the config -
https://gist.github.com/vmihailenco/9010ad37f5aeb800095a6b18909ae7d5.
Backends don't have any options. I already tried to remove `http-reuse
safe`, but it does not make any difference.
Haproxy 1.7 with compression (HTML not fully loaded) -
https://gist.github.com/vmihailenco/05bda6e7a49b6f78cd2f749abb0cf5b3
Haproxy 1.7 without compression (HTML fully loaded) -
https://gist.github.com/vmihailenco/d8732e53acac3769a85b59afd7336bab
Haproxy 1.7 with compression and Rails configured to set Content-Length
via config.middleware.use Rack::ContentLength (HTML fully loaded) -
https://gist.github.com/vmihailenco/13a809f486c4e1833ef813a019549180
Hi,
Thanks for details. There are some things that puzzle me.
I guess that when you disable the compression, it means that you comment
"compression" lines in the frontend section. In that case, we can see
the response is chunked. Because it is untouched by HAProxy, this comes
from your backend. Here there is no problem.
But when the compression is enabled, there is a Content-Length header
and no Transfer-Encoding header. That's really strange because, HAProxy
never adds Content-Length header, at any place. So, I'm tempted to think
that it comes from your backend. But that's contradicts my previous
remark. And there is no Content-Encoding header. So, it means that
HAProxy didn't compressed the response.
So, to be sure, if possible, it could be helpful to have tcpdump of data
exchanged between HAProxy and your backends (or something similar, as
you prefer). Send me them in private to not flood the ML. In the
meantime, I will try to investigate.
With Haproxy 1.6 and enabled compression
- i can load full HTML (200kb)
- HTML is not compressed
- Transfer-encoding: "chunked"
- no Content-Length header
Just to be sure, here there is a typo error. You meant "HTML is
compressed", right ?
--
Christopher