指令的合并
- 两类指令: 值指令-存储配置项的值; 动作类指令-指定行为;
- 值指令不同块下可以合并; root, access_log, gzip
- 动作类指令不可以合并; rewrite, proxy_pass;
- 动作类指令生效阶段: server_rewrite阶段; rewrite 阶段; content阶段;
规则
- 存储值的指令继承规则: 向上覆盖
- 子配置不存在时,直接使用父配置块; 子配置存在时,直接使用子配置,覆盖父配置块;
http 模块合并配置的实现-判断
- 指令在哪个块下生效?
- 指令允许出现在哪些块下?
- 在server 块内生效,从http向 server合并指令: *merge_srv_conf;
- 配置缓存在内存: *merge_loc_conf;
- ngx_command_t : 没一个元素就是一条指令;