resolver
2015-02-13 16:44:00 2 举报
nginx_resolver 流程
作者其他创作
大纲/内容
ngx_http_upstream_resolved_t
/* 将要解析的域名,在 ngx_http_proxy_eval 中设置, host 指向的内存是基于 r-pool 申请的 */ ngx_str_t host; in_port_t port; ngx_uint_t no_port; /* unsigned no_port:1 */ ngx_uint_t naddrs; in_addr_t *addrs; struct sockaddr *sockaddr; socklen_t socklen;/* ngx_http_upstream_init_request 创建 */ ngx_resolver_ctx_t *ctx;
insertresend_queue
ngx_resolver_t
/* simple round robin DNS peers balancer */ ngx_array_t udp_connections; ngx_uint_t last_connection;. . .
resolver_query
ngx_http_core_loc_conf
ngx_resolver_t *resolver; /* resolver */
success
ngx_resolver_ctx_t
ngx_resolver_ctx_t *next; ngx_resolver_t *resolver; ngx_udp_connection_t *udp_connection; /* ident must be after 3 pointers */ ngx_int_t ident; ngx_int_t state; ngx_int_t type; ngx_str_t name; ngx_uint_t naddrs; in_addr_t *addrs; in_addr_t addr; ngx_resolver_handler_pt handler; void *data; ngx_msec_t timeout; ngx_uint_t quick; /* unsigned quick:1; */ ngx_uint_t recursion; ngx_event_t *event;
failed
query_loc_catch
insert expire_queue
ngx_http_upstream_t
ngx_http_upstream_resolved_t *resolved;
0 条评论
下一页