From 1a2adac356e57893fad82f0637fb12b27d581242 Mon Sep 17 00:00:00 2001 From: Roman Arutyunyan Date: Tue, 5 May 2026 15:22:05 +0400 Subject: [PATCH] Proxy: fix keepalive for HTTP/2 with explicit or no body Previously, when an HTTP/2 request had no body or an explicit body was set by proxy_set_body, the request consisted of only one buffer, which had no b->last_buf flag set. This prevented ctx->output_closed from being set after processing this buffer. Consequently, u->keepalive might not be set to store the connection in the keepalive cache. --- src/http/modules/ngx_http_proxy_v2_module.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/http/modules/ngx_http_proxy_v2_module.c b/src/http/modules/ngx_http_proxy_v2_module.c index 4c282a864..7cff58d3b 100644 --- a/src/http/modules/ngx_http_proxy_v2_module.c +++ b/src/http/modules/ngx_http_proxy_v2_module.c @@ -910,6 +910,8 @@ ngx_http_proxy_v2_create_request(ngx_http_request_t *r) f = (ngx_http_proxy_v2_frame_t *) headers_frame; f->flags |= NGX_HTTP_V2_END_STREAM_FLAG; } + + b->last_buf = 1; } u->output.output_filter = ngx_http_proxy_v2_body_output_filter; -- 2.47.3