ngx_http_conf_port_t

定义在 src\http\ngx_http_core_module.h 

typedef struct {
    ngx_int_t                  family;
    in_port_t                  port;
    ngx_array_t                addrs;     /* array of ngx_http_conf_addr_t */
} ngx_http_conf_port_t;

该结构体用于在 Nginx 配置阶段存储 监听端口的配置信息 ,是 listen 指令解析后的核心数据结构。它将同一端口号(如 80)的多个监听地址(如 127.0.0.1:80192.168.1.1:80)集中管理,为后续的套接字绑定和请求路由提供支持


ngx_int_t family

标识协议族(Protocol Family),决定地址类型:

  • AF_INET:IPv4 地址
  • AF_INET6:IPv6 地址

即使端口号相同,IPv4 和 IPv6 的监听配置会被视为独立的端口


in_port_t port
  • 类型 in_port_t(等价于 uint16_t)。
  • 作用
    存储监听的端口号(主机字节序),例如 80443
  • 意义
    作为端口的唯一标识符,用于快速判断新配置的端口是否已存在

ngx_array_t addrs
  • 类型 ngx_array_t(Nginx 动态数组)。
  • 元素类型 ngx_http_conf_addr_t(存储具体地址的配置)。
  • 作用
    管理该端口下的所有监听地址(如 0.0.0.0:80127.0.0.1:80)。
  • 意义
    • 集中管理地址 :同一端口的多个地址配置被统一存储,避免重复绑定。
    • 支持复杂配置 :每个地址可能包含不同的参数(如 sslbindbacklog)。

你可能感兴趣的:(http,网络协议,网络)