[PATCH] Proxy: set u->keepalive also if the whole body has already been read.
Jan Prachař
jan.prachar at gmail.com
Mon Sep 21 18:09:29 UTC 2020
# HG changeset patch
# User Jan Prachař <jan.prachar at gmail.com>
# Date 1600710589 -7200
# Mon Sep 21 19:49:49 2020 +0200
# Node ID f211684e1acee34eabfdd9dd39283bcff8dc7087
# Parent 052ecc68d35038b1b4adde12efe6249a92055f09
Proxy: set u->keepalive also if the whole body has already been read.
HTTP redirection responses often contain a small few hundred bytes
body. This
allows to left keep alive connection open, if the body fits into the
upstream
buffer.
diff -r 052ecc68d350 -r f211684e1ace
src/http/modules/ngx_http_proxy_module.c
--- a/src/http/modules/ngx_http_proxy_module.c Wed Sep 16 18:26:25
2020 +0300
+++ b/src/http/modules/ngx_http_proxy_module.c Mon Sep 21 19:49:49
2020 +0200
@@ -1905,7 +1905,8 @@
}
/*
- * set u->keepalive if response has no body; this allows
to keep
+ * set u->keepalive if response has no body or if the
whole body
+ * has been already read to u->buffer; this allows to keep
* connections alive in case of r->header_only or X-Accel-
Redirect
*/
@@ -1915,7 +1916,7 @@
|| u->headers_in.status_n == NGX_HTTP_NOT_MODIFIED
|| ctx->head
|| (!u->headers_in.chunked
- && u->headers_in.content_length_n == 0))
+ && u->headers_in.content_length_n <= u-
>buffer.last-u->buffer.pos))
{
u->keepalive = !u->headers_in.connection_close;
}
More information about the nginx-devel
mailing list