From 40f3aafc45990c1646397c67d2bd3e8eff3f543e Mon Sep 17 00:00:00 2001 From: Reguna Date: Fri, 19 Jun 2026 04:01:24 +0800 Subject: [PATCH] server: add "X-Accel-Buffering": "no" header to streaming endpoints (#24774) * server: add "X-Accel-Buffering": "no" header to streaming endpoints This header tells Nginx (as a reverse proxy) to NOT buffer responses. (only affects streaming endpoints) Without it, Nginx will break streaming with certain applications (notably the Pi coding harness). --- tools/server/server-http.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/server/server-http.cpp b/tools/server/server-http.cpp index 5defee1f5e..4f2abab00c 100644 --- a/tools/server/server-http.cpp +++ b/tools/server/server-http.cpp @@ -492,6 +492,8 @@ using server_http_req_ptr = std::unique_ptr; static void process_handler_response(server_http_req_ptr && request, server_http_res_ptr & response, httplib::Response & res) { if (response->is_stream()) { res.status = response->status; + // Tell Nginx to not buffer any streamed response + response->headers["X-Accel-Buffering"] = "no"; set_headers(res, response->headers); const std::string content_type = response->content_type; // convert to shared_ptr as both chunked_content_provider() and on_complete() need to use it