Le 19/11/2019 à 13:20, Илья Шипицин a écrit :
how is that supposed to work ?
does it buffer the entire body ? does it use memory / hdd for buffering ?
how are those buffers allocated ? what if I do not have a lot of RAM ?
As mentioned in the documentation, HTTP processing is delayed waiting the whole
body is received or the request buffer is full. The condition about the first
chunk of a chunked request is only valid for the legacy HTTP mode. It was
removed in 2.1, so the documentation is a bit outdated on this point.
BTW, this means that HAProxy waits for the entire request's body before
processing it, if this one is smaller than a buffer. Otherwise, it waits the
request buffer is full. In this case, only a part of the payload will be
available. But there is no extra memory allocated to store the entire body.
About the buffers allocation, as for most of other objects dynamically allocated
in HAProxy, it uses memory pools to do so. The buffer size if 16k by default and
may be tuned via the "tune.bufsize" global directive.
Hope it helps,