From: Kirill A. Korinskiy [email protected]
Now calculation $upstream_response_time happen after send header to
client and we have a 0 ms response to not error (last) upstream.
src/http/ngx_http_upstream.c | 23 ++++++++++±-----------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index 7ae15cb…0771388 100644
— a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -1843,10 +1843,21 @@
ngx_http_upstream_send_response(ngx_http_request_t *r,
ngx_http_upstream_t *u)
int tcp_nodelay;
ssize_t n;
ngx_int_t rc;
-
ngx_time_t *tp;
ngx_event_pipe_t *p;
ngx_connection_t *c;
ngx_http_core_loc_conf_t *clcf; -
if (u->state && u->state->response_sec) {
-
tp = ngx_timeofday();
-
u->state->response_sec = tp->sec - u->state->response_sec;
-
u->state->response_msec = tp->msec - u->state->response_msec;
-
if (u->pipe) {
-
u->state->response_length = u->pipe->read_length;
-
}
-
}
-
rc = ngx_http_send_header(r);
if (rc == NGX_ERROR || rc > NGX_OK || r->post_action) {
@@ -2735,8 +2746,6 @@ static void
ngx_http_upstream_finalize_request(ngx_http_request_t *r,
ngx_http_upstream_t *u, ngx_int_t rc)
{
- ngx_time_t *tp;
- ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
“finalize http upstream request: %i”, rc);
@@ -2744,16 +2753,6 @@
ngx_http_upstream_finalize_request(ngx_http_request_t *r,
*u->cleanup = NULL;
}
-
if (u->state && u->state->response_sec) {
-
tp = ngx_timeofday();
-
u->state->response_sec = tp->sec - u->state->response_sec;
-
u->state->response_msec = tp->msec - u->state->response_msec;
-
if (u->pipe) {
-
u->state->response_length = u->pipe->read_length;
-
}
-
}
-
u->finalize_request(r, rc);
if (u->peer.free) {