当前位置: 首页 > article >正文

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)。

 


http://www.kler.cn/a/594002.html

相关文章:

  • 【SpringCloud】微服务的治理以及服务间的远程调用
  • 网络工程学习笔记
  • idea问题(三)pom文件显示删除线
  • 深度学习之语义分割
  • 【算法day16】电话号码的字母组合
  • 【设计模式】策略模式
  • java使用Modbus协议与设备进行通信
  • 【sgFloatDialog】自定义组件:浮动弹窗,支持修改尺寸、拖拽位置、最大化、还原、最小化、复位
  • AdaWaveNet:用于时间序列分析的自适应小波网络
  • 高并发编程有哪些规范?
  • 群晖中的docker设置总是不生效,尤其代理
  • 天梯赛 L2-011 玩转二叉树
  • 【MyDB】7-客户端服务端通信之3-Client的实现
  • AI日报 - 2025年3月21日
  • 使用FastAPI为知识库问答系统前端提供后端功能接口
  • 期货和期权的区别,通俗易懂!
  • ccf3401矩阵重塑(其一)
  • deepseek使用记录24——小灵
  • Spring 事务注解原理
  • [Xilinx]工具篇_Vivado自动安装