前面的的文章,我们已经知道在ngx初始化的时候,会将listening数组中的监听端口全部打开,那么这里就有问题,这些socket的信息是在哪里获取的呢?这篇文章将会对此进行分析。
首先先看监听端口的定义:(src/core/ngx_connection.h)
struct ngx_listening_s {
ngx_socket_t fd; //int类型,socket描述符
struct sockaddr *sockaddr; //地址结构
socklen_t socklen; /* size of sockaddr */
size_t addr_text_max_len;
ngx_str_t addr_text;
int type;
int backlog;
int rcvbuf; //接受缓冲区
int sndbuf; //发送缓冲区
#if (NGX_HAVE_KEEPALIVE_TUNABLE)
int keepidle;
int keepintvl;
int keepcnt;
#endif
/* handler of accepted connection */
ngx_connection_handler_pt handler; //处理函数,该函数将会用来当accept新的连接,并为该socket分配空闲的conne

本文探讨了在nginx启动过程中,如何获取并处理listening数组中的监听socket信息。内容涉及nginx初始化阶段监听端口的打开,以及相关socket信息的来源分析。
最低0.47元/天 解锁文章
7920

被折叠的 条评论
为什么被折叠?



