From 210787a3522ffc53c786e9d367909353f263b3ed Mon Sep 17 00:00:00 2001 From: Oliver Giles Date: Fri, 29 Mar 2019 22:39:41 +0300 Subject: [PATCH] log endpoint: hint to reverse-proxy not to buffer As discussed in #88, nginx will buffer the chunked transfer-encoding unless the proxy_buffering directive is disabled, or the X-Accel-Buffering header is set to no. Do the latter to reduce configuration burden on frontend reverse-proxy setups. --- src/server.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index 8e50eff..b26507f 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -415,6 +415,8 @@ private: if(laminar.handleLogRequest(name, num, output, complete)) { responseHeaders.set(kj::HttpHeaderId::CONTENT_TYPE, "text/plain; charset=utf-8"); responseHeaders.add("Content-Transfer-Encoding", "binary"); + // Disables nginx reverse-proxy's buffering. Necessary for dynamic log output. + responseHeaders.add("X-Accel-Buffering", "no"); auto stream = response.send(200, "OK", responseHeaders, nullptr); laminar.registerClient(cc.get()); return stream->write(output.data(), output.size()).then([=,s=stream.get(),c=cc.get()]{