mirror of
https://github.com/nginx/nginx.git
synced 2024-12-19 05:33:52 -06:00
Upstream: implemented $upstream_bytes_sent.
This commit is contained in:
parent
8e2949e56a
commit
cb4dd56771
@ -409,6 +409,10 @@ static ngx_http_variable_t ngx_http_upstream_vars[] = {
|
|||||||
ngx_http_upstream_response_length_variable, 1,
|
ngx_http_upstream_response_length_variable, 1,
|
||||||
NGX_HTTP_VAR_NOCACHEABLE, 0 },
|
NGX_HTTP_VAR_NOCACHEABLE, 0 },
|
||||||
|
|
||||||
|
{ ngx_string("upstream_bytes_sent"), NULL,
|
||||||
|
ngx_http_upstream_response_length_variable, 2,
|
||||||
|
NGX_HTTP_VAR_NOCACHEABLE, 0 },
|
||||||
|
|
||||||
#if (NGX_HTTP_CACHE)
|
#if (NGX_HTTP_CACHE)
|
||||||
|
|
||||||
{ ngx_string("upstream_cache_status"), NULL,
|
{ ngx_string("upstream_cache_status"), NULL,
|
||||||
@ -4136,6 +4140,10 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
|
|||||||
|
|
||||||
if (u->peer.sockaddr) {
|
if (u->peer.sockaddr) {
|
||||||
|
|
||||||
|
if (u->peer.connection) {
|
||||||
|
u->state->bytes_sent = u->peer.connection->sent;
|
||||||
|
}
|
||||||
|
|
||||||
if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_403
|
if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_403
|
||||||
|| ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404)
|
|| ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404)
|
||||||
{
|
{
|
||||||
@ -4319,6 +4327,10 @@ ngx_http_upstream_finalize_request(ngx_http_request_t *r,
|
|||||||
- u->pipe->preread_size;
|
- u->pipe->preread_size;
|
||||||
u->state->response_length = u->pipe->read_length;
|
u->state->response_length = u->pipe->read_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (u->peer.connection) {
|
||||||
|
u->state->bytes_sent = u->peer.connection->sent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u->finalize_request(r, rc);
|
u->finalize_request(r, rc);
|
||||||
@ -5502,6 +5514,9 @@ ngx_http_upstream_response_length_variable(ngx_http_request_t *r,
|
|||||||
if (data == 1) {
|
if (data == 1) {
|
||||||
p = ngx_sprintf(p, "%O", state[i].bytes_received);
|
p = ngx_sprintf(p, "%O", state[i].bytes_received);
|
||||||
|
|
||||||
|
} else if (data == 2) {
|
||||||
|
p = ngx_sprintf(p, "%O", state[i].bytes_sent);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
p = ngx_sprintf(p, "%O", state[i].response_length);
|
p = ngx_sprintf(p, "%O", state[i].response_length);
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,7 @@ typedef struct {
|
|||||||
ngx_msec_t queue_time;
|
ngx_msec_t queue_time;
|
||||||
off_t response_length;
|
off_t response_length;
|
||||||
off_t bytes_received;
|
off_t bytes_received;
|
||||||
|
off_t bytes_sent;
|
||||||
|
|
||||||
ngx_str_t *peer;
|
ngx_str_t *peer;
|
||||||
} ngx_http_upstream_state_t;
|
} ngx_http_upstream_state_t;
|
||||||
|
Loading…
Reference in New Issue
Block a user