定义在
src\http\ngx_http_core_module.h
typedef struct {
/* array of the ngx_http_server_name_t, "server_name" directive */
ngx_array_t server_names;
/* server ctx */
ngx_http_conf_ctx_t *ctx;
u_char *file_name;
ngx_uint_t line;
ngx_str_t server_name;
size_t connection_pool_size;
size_t request_pool_size;
size_t client_header_buffer_size;
ngx_bufs_t large_client_header_buffers;
ngx_msec_t client_header_timeout;
ngx_flag_t ignore_invalid_headers;
ngx_flag_t merge_slashes;
ngx_flag_t underscores_in_headers;
unsigned listen:1;
#if (NGX_PCRE)
unsigned captures:1;
#endif
ngx_http_core_loc_conf_t **named_locations;
} ngx_http_core_srv_conf_t;
ngx_http_core_srv_conf_t
是 Nginx HTTP 核心模块在 server 层级的配置中枢,负责存储虚拟主机的域名、资源分配策略、协议行为规则等关键参数,并协调各模块的配置管理。
listen
是一个 1 位的位域字段 (unsigned listen:1
),用于标记当前 server
块是否显式配置了 listen
指令
-
当用户在 server
块中配置了 listen
指令(例如 listen 80;
或 listen 443 ssl;
)时,Nginx 会将 listen
字段置为 1
。
-
如果未显式配置 listen
,该字段默认为 0
,此时 Nginx 会使用 默认监听行为 (通常是监听 80
端口或 443
端口,取决于是否启用 SSL)