mirror of
https://github.com/nginx/nginx.git
synced 2025-08-06 14:56:15 +08:00
Upstream: simplified some code that accesses peers.
No functional changes.
This commit is contained in:
parent
a1a8defb49
commit
20038acbfc
@ -30,6 +30,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
ngx_url_t u;
|
ngx_url_t u;
|
||||||
ngx_uint_t i, j, n, w;
|
ngx_uint_t i, j, n, w;
|
||||||
ngx_http_upstream_server_t *server;
|
ngx_http_upstream_server_t *server;
|
||||||
|
ngx_http_upstream_rr_peer_t *peer;
|
||||||
ngx_http_upstream_rr_peers_t *peers, *backup;
|
ngx_http_upstream_rr_peers_t *peers, *backup;
|
||||||
|
|
||||||
us->peer.init = ngx_http_upstream_init_round_robin_peer;
|
us->peer.init = ngx_http_upstream_init_round_robin_peer;
|
||||||
@ -69,6 +70,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
peers->name = &us->host;
|
peers->name = &us->host;
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
|
peer = peers->peer;
|
||||||
|
|
||||||
for (i = 0; i < us->servers->nelts; i++) {
|
for (i = 0; i < us->servers->nelts; i++) {
|
||||||
if (server[i].backup) {
|
if (server[i].backup) {
|
||||||
@ -76,16 +78,16 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < server[i].naddrs; j++) {
|
for (j = 0; j < server[i].naddrs; j++) {
|
||||||
peers->peer[n].sockaddr = server[i].addrs[j].sockaddr;
|
peer[n].sockaddr = server[i].addrs[j].sockaddr;
|
||||||
peers->peer[n].socklen = server[i].addrs[j].socklen;
|
peer[n].socklen = server[i].addrs[j].socklen;
|
||||||
peers->peer[n].name = server[i].addrs[j].name;
|
peer[n].name = server[i].addrs[j].name;
|
||||||
peers->peer[n].weight = server[i].weight;
|
peer[n].weight = server[i].weight;
|
||||||
peers->peer[n].effective_weight = server[i].weight;
|
peer[n].effective_weight = server[i].weight;
|
||||||
peers->peer[n].current_weight = 0;
|
peer[n].current_weight = 0;
|
||||||
peers->peer[n].max_fails = server[i].max_fails;
|
peer[n].max_fails = server[i].max_fails;
|
||||||
peers->peer[n].fail_timeout = server[i].fail_timeout;
|
peer[n].fail_timeout = server[i].fail_timeout;
|
||||||
peers->peer[n].down = server[i].down;
|
peer[n].down = server[i].down;
|
||||||
peers->peer[n].server = server[i].name;
|
peer[n].server = server[i].name;
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,6 +126,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
backup->name = &us->host;
|
backup->name = &us->host;
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
|
peer = backup->peer;
|
||||||
|
|
||||||
for (i = 0; i < us->servers->nelts; i++) {
|
for (i = 0; i < us->servers->nelts; i++) {
|
||||||
if (!server[i].backup) {
|
if (!server[i].backup) {
|
||||||
@ -131,16 +134,16 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < server[i].naddrs; j++) {
|
for (j = 0; j < server[i].naddrs; j++) {
|
||||||
backup->peer[n].sockaddr = server[i].addrs[j].sockaddr;
|
peer[n].sockaddr = server[i].addrs[j].sockaddr;
|
||||||
backup->peer[n].socklen = server[i].addrs[j].socklen;
|
peer[n].socklen = server[i].addrs[j].socklen;
|
||||||
backup->peer[n].name = server[i].addrs[j].name;
|
peer[n].name = server[i].addrs[j].name;
|
||||||
backup->peer[n].weight = server[i].weight;
|
peer[n].weight = server[i].weight;
|
||||||
backup->peer[n].effective_weight = server[i].weight;
|
peer[n].effective_weight = server[i].weight;
|
||||||
backup->peer[n].current_weight = 0;
|
peer[n].current_weight = 0;
|
||||||
backup->peer[n].max_fails = server[i].max_fails;
|
peer[n].max_fails = server[i].max_fails;
|
||||||
backup->peer[n].fail_timeout = server[i].fail_timeout;
|
peer[n].fail_timeout = server[i].fail_timeout;
|
||||||
backup->peer[n].down = server[i].down;
|
peer[n].down = server[i].down;
|
||||||
backup->peer[n].server = server[i].name;
|
peer[n].server = server[i].name;
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,15 +192,17 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
|||||||
peers->total_weight = n;
|
peers->total_weight = n;
|
||||||
peers->name = &us->host;
|
peers->name = &us->host;
|
||||||
|
|
||||||
|
peer = peers->peer;
|
||||||
|
|
||||||
for (i = 0; i < u.naddrs; i++) {
|
for (i = 0; i < u.naddrs; i++) {
|
||||||
peers->peer[i].sockaddr = u.addrs[i].sockaddr;
|
peer[i].sockaddr = u.addrs[i].sockaddr;
|
||||||
peers->peer[i].socklen = u.addrs[i].socklen;
|
peer[i].socklen = u.addrs[i].socklen;
|
||||||
peers->peer[i].name = u.addrs[i].name;
|
peer[i].name = u.addrs[i].name;
|
||||||
peers->peer[i].weight = 1;
|
peer[i].weight = 1;
|
||||||
peers->peer[i].effective_weight = 1;
|
peer[i].effective_weight = 1;
|
||||||
peers->peer[i].current_weight = 0;
|
peer[i].current_weight = 0;
|
||||||
peers->peer[i].max_fails = 1;
|
peer[i].max_fails = 1;
|
||||||
peers->peer[i].fail_timeout = 10;
|
peer[i].fail_timeout = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
us->peer.data = peers;
|
us->peer.data = peers;
|
||||||
@ -271,6 +276,7 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
|
|||||||
socklen_t socklen;
|
socklen_t socklen;
|
||||||
ngx_uint_t i, n;
|
ngx_uint_t i, n;
|
||||||
struct sockaddr *sockaddr;
|
struct sockaddr *sockaddr;
|
||||||
|
ngx_http_upstream_rr_peer_t *peer;
|
||||||
ngx_http_upstream_rr_peers_t *peers;
|
ngx_http_upstream_rr_peers_t *peers;
|
||||||
ngx_http_upstream_rr_peer_data_t *rrp;
|
ngx_http_upstream_rr_peer_data_t *rrp;
|
||||||
|
|
||||||
@ -295,15 +301,17 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
|
|||||||
peers->number = ur->naddrs;
|
peers->number = ur->naddrs;
|
||||||
peers->name = &ur->host;
|
peers->name = &ur->host;
|
||||||
|
|
||||||
|
peer = peers->peer;
|
||||||
|
|
||||||
if (ur->sockaddr) {
|
if (ur->sockaddr) {
|
||||||
peers->peer[0].sockaddr = ur->sockaddr;
|
peer[0].sockaddr = ur->sockaddr;
|
||||||
peers->peer[0].socklen = ur->socklen;
|
peer[0].socklen = ur->socklen;
|
||||||
peers->peer[0].name = ur->host;
|
peer[0].name = ur->host;
|
||||||
peers->peer[0].weight = 1;
|
peer[0].weight = 1;
|
||||||
peers->peer[0].effective_weight = 1;
|
peer[0].effective_weight = 1;
|
||||||
peers->peer[0].current_weight = 0;
|
peer[0].current_weight = 0;
|
||||||
peers->peer[0].max_fails = 1;
|
peer[0].max_fails = 1;
|
||||||
peers->peer[0].fail_timeout = 10;
|
peer[0].fail_timeout = 10;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -335,15 +343,15 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
|
|||||||
|
|
||||||
len = ngx_sock_ntop(sockaddr, socklen, p, NGX_SOCKADDR_STRLEN, 1);
|
len = ngx_sock_ntop(sockaddr, socklen, p, NGX_SOCKADDR_STRLEN, 1);
|
||||||
|
|
||||||
peers->peer[i].sockaddr = sockaddr;
|
peer[i].sockaddr = sockaddr;
|
||||||
peers->peer[i].socklen = socklen;
|
peer[i].socklen = socklen;
|
||||||
peers->peer[i].name.len = len;
|
peer[i].name.len = len;
|
||||||
peers->peer[i].name.data = p;
|
peer[i].name.data = p;
|
||||||
peers->peer[i].weight = 1;
|
peer[i].weight = 1;
|
||||||
peers->peer[i].effective_weight = 1;
|
peer[i].effective_weight = 1;
|
||||||
peers->peer[i].current_weight = 0;
|
peer[i].current_weight = 0;
|
||||||
peers->peer[i].max_fails = 1;
|
peer[i].max_fails = 1;
|
||||||
peers->peer[i].fail_timeout = 10;
|
peer[i].fail_timeout = 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,13 +397,15 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data)
|
|||||||
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
|
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
|
||||||
"get rr peer, try: %ui", pc->tries);
|
"get rr peer, try: %ui", pc->tries);
|
||||||
|
|
||||||
/* ngx_lock_mutex(rrp->peers->mutex); */
|
|
||||||
|
|
||||||
pc->cached = 0;
|
pc->cached = 0;
|
||||||
pc->connection = NULL;
|
pc->connection = NULL;
|
||||||
|
|
||||||
if (rrp->peers->single) {
|
peers = rrp->peers;
|
||||||
peer = &rrp->peers->peer[0];
|
|
||||||
|
/* ngx_lock_mutex(peers->mutex); */
|
||||||
|
|
||||||
|
if (peers->single) {
|
||||||
|
peer = &peers->peer[0];
|
||||||
|
|
||||||
if (peer->down) {
|
if (peer->down) {
|
||||||
goto failed;
|
goto failed;
|
||||||
@ -420,18 +430,16 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data)
|
|||||||
pc->socklen = peer->socklen;
|
pc->socklen = peer->socklen;
|
||||||
pc->name = &peer->name;
|
pc->name = &peer->name;
|
||||||
|
|
||||||
/* ngx_unlock_mutex(rrp->peers->mutex); */
|
/* ngx_unlock_mutex(peers->mutex); */
|
||||||
|
|
||||||
if (pc->tries == 1 && rrp->peers->next) {
|
if (pc->tries == 1 && peers->next) {
|
||||||
pc->tries += rrp->peers->next->number;
|
pc->tries += peers->next->number;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
|
|
||||||
failed:
|
failed:
|
||||||
|
|
||||||
peers = rrp->peers;
|
|
||||||
|
|
||||||
if (peers->next) {
|
if (peers->next) {
|
||||||
|
|
||||||
/* ngx_unlock_mutex(peers->mutex); */
|
/* ngx_unlock_mutex(peers->mutex); */
|
||||||
|
Loading…
Reference in New Issue
Block a user