ngx_http_conf_ctx_t

定义在

src/http/ngx_http_config.h

复制代码
typedef struct {
    void        **main_conf;
    void        **srv_conf;
    void        **loc_conf;
} ngx_http_conf_ctx_t;

ngx_http_conf_ctx_t 是 Nginx 中用于管理 HTTP 配置上下文的核心结构体,其设计体现了 Nginx 多级配置(main、server、location)的层级化管理思想

1. main_conf(主配置块指针数组)
  • 作用:存储全局(main 级别)的配置数据。
  • 意义
    • 对应 Nginx 配置文件中的 http 块(最外层配置)。
    • 每个 HTTP 模块(如 ngx_http_core_module)在解析全局配置时,会将自己的配置结构体指针存入 main_conf 数组。
    • 例如:worker_connectionskeepalive_timeout 等全局配置存储在此。
  • 实现细节
    • main_conf 是一个 void** 类型的数组,数组长度为所有 HTTP 模块的数量。
    • 每个元素指向对应模块的全局配置结构体(如 ngx_http_core_main_conf_t)。
2. srv_conf(服务配置块指针数组)
  • 作用:存储虚拟主机(server 级别)的配置数据。
  • 意义
    • 对应 Nginx 配置文件中的 server 块。
    • 每个 HTTP 模块在解析虚拟主机配置时,会将自己的配置结构体指针存入 srv_conf 数组。
    • 例如:listen 端口、server_name 等配置存储在此。
  • 实现细节
    • srv_conf 的数组长度同样等于 HTTP 模块的数量。
    • 每个元素指向对应模块的虚拟主机配置结构体(如 ngx_http_core_srv_conf_t)。
3. loc_conf(位置配置块指针数组)
  • 作用:存储路径(location 级别)的配置数据。
  • 意义
    • 对应 Nginx 配置文件中的 location 块。
    • 每个 HTTP 模块在解析路径配置时,会将自己的配置结构体指针存入 loc_conf 数组。
    • 例如:proxy_passroot 等与路径相关的配置存储在此。
  • 实现细节
    • loc_conf 的数组长度仍为 HTTP 模块的数量。
    • 每个元素指向对应模块的路径配置结构体(如 ngx_http_core_loc_conf_t)。
相关推荐
Coisinier9 小时前
RHCE中shell脚本基础(磁盘剩余空间监控,Web 服务状态检查,curl 访问 Web 服务并返回状态)
linux·运维·服务器·前端·nginx·操作系统
GlobalSign数字证书11 小时前
Nginx配置SSL证书教程:从零到HTTPS的完整部署指南
nginx·https·ssl
難釋懷1 天前
Nginx对客户端的限制
运维·nginx
楠目1 天前
CVE-2017-7529 Nginx Range头整数溢出漏洞利用总结
运维·nginx
難釋懷2 天前
Nginx缓冲区
前端·javascript·nginx
ElevenS_it1882 天前
Nginx日志监控告警实战:access_log解析+5xx突增+慢请求+异常IP自动告警完整方案(Filebeat+Zabbix)
运维·网络·tcp/ip·nginx·zabbix
半夜燃烧的香烟3 天前
docker 安装minio nginx,配置nginx根据文根路由minio展示图片
java·nginx·docker
火山上的企鹅3 天前
Codex实战:APP远程升级服务搭建(二)阿里云ECS部署Node升级服务_Ubuntu_systemd_Nginx
nginx·ubuntu·阿里云·qgc
難釋懷3 天前
Nginx-UpStream工作流程
运维·nginx
難釋懷3 天前
Nginx-AB安装
运维·nginx