nginx源码分析—处理继承的sockets

本文详细探讨了nginx在初始化过程中如何处理继承的sockets,包括ngx_add_inherited_sockets()和ngx_set_inherited_sockets()两个关键函数的分析。ngx_add_inherited_sockets()从环境变量中获取socket数并保存,而ngx_set_inherited_sockets()则负责初始化ngx_cycle.listening数组中的各个元素,设置相关字段,如sockaddr、addr_text等。
摘要由CSDN通过智能技术生成

作者:阿波
链接:http://blog.csdn.net/livelylittlefish/article/details/7277607

Content

0.

1.侦听结构

2. ngx_add_inherited_sockets()分析

3. ngx_set_inherited_sockets()分析

4.小结

 

 

0.

 

本文将着重分析初始化过程中如何处理继承的sockets。文中如无特别说明,.表示nginx-1.0.4代码目录,本文为/usr/src/nginx-1.0.4

 

1.侦听结构

 

侦听结构较为复杂,描述如下。

 

file: ./src/core/ngx_connection.h

typedef struct ngx_listening_s  ngx_listening_t;

struct ngx_listening_s {
    ngx_socket_t        fd;         /* 文件描述符,即socket */

    struct sockaddr    *sockaddr;   /* socket地址 */
    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;     /* 发送缓冲区 */

    /* handler of accepted connection */
    ngx_connection_handler_pt   handler;

    void               *servers;  /* array of ngx_http_in_addr_t, for example */

    ngx_log_t           log;
    ngx_log_t          *logp;

    size_t              pool_size;
    /* should be here because of the AcceptEx()
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值