ngx_http_upstream_round_robin.h

来自「Nginx是一个高性能的HTTP和反向代理服务器」· C头文件 代码 · 共 86 行

H
86
字号
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_#define _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>#include <ngx_http.h>typedef struct {    struct sockaddr                *sockaddr;    socklen_t                       socklen;    ngx_str_t                       name;    ngx_int_t                       current_weight;    ngx_int_t                       weight;    ngx_uint_t                      fails;    time_t                          accessed;    ngx_uint_t                      max_fails;    time_t                          fail_timeout;    ngx_uint_t                      down;          /* unsigned  down:1; */#if (NGX_HTTP_SSL)    ngx_ssl_session_t              *ssl_session;   /* local to a process */#endif} ngx_http_upstream_rr_peer_t;typedef struct ngx_http_upstream_rr_peers_s  ngx_http_upstream_rr_peers_t;struct ngx_http_upstream_rr_peers_s {    ngx_uint_t                      single;        /* unsigned  single:1; */    ngx_uint_t                      number;    ngx_uint_t                      last_cached; /* ngx_mutex_t                    *mutex; */    ngx_connection_t              **cached;    ngx_str_t                      *name;    ngx_http_upstream_rr_peers_t   *next;    ngx_http_upstream_rr_peer_t     peer[1];};typedef struct {    ngx_http_upstream_rr_peers_t   *peers;    ngx_uint_t                      current;    uintptr_t                      *tried;    uintptr_t                       data;} ngx_http_upstream_rr_peer_data_t;ngx_int_t ngx_http_upstream_init_round_robin(ngx_conf_t *cf,    ngx_http_upstream_srv_conf_t *us);ngx_int_t ngx_http_upstream_init_round_robin_peer(ngx_http_request_t *r,    ngx_http_upstream_srv_conf_t *us);ngx_int_t ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,    ngx_http_upstream_resolved_t *ur);ngx_int_t ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc,    void *data);void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc,    void *data, ngx_uint_t state);#if (NGX_HTTP_SSL)ngx_int_t    ngx_http_upstream_set_round_robin_peer_session(ngx_peer_connection_t *pc,    void *data);void ngx_http_upstream_save_round_robin_peer_session(ngx_peer_connection_t *pc,    void *data);#endif#endif /* _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?