ngx_conf_handler - root html

复制代码
static ngx_int_t
ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last)
{
    char           *rv;
    void           *conf, **confp;
    ngx_uint_t      i, found;
    ngx_str_t      *name;
    ngx_command_t  *cmd;

    name = cf->args->elts;

    found = 0;

此时 name->data=root

复制代码
    for (i = 0; cf->cycle->modules[i]; i++) {

        cmd = cf->cycle->modules[i]->commands;
        if (cmd == NULL) {
            continue;
        }

        for ( /* void */ ; cmd->name.len; cmd++) {

            if (name->len != cmd->name.len) {
                continue;
            }

            if (ngx_strcmp(name->data, cmd->name.data) != 0) {
                continue;
            }

            found = 1;

循环查找 root 指令

直到 i=9

modules[9]->name=ngx_http_core_module

找到 了 root 指令

root 指令 用于指定 Nginx 服务器在响应请求时,查找静态文件的根路径

复制代码
            else if (cf->ctx) {
                confp = *(void **) ((char *) cf->ctx + cmd->conf);

                if (confp) {
                    conf = confp[cf->cycle->modules[i]->ctx_index];
                }
            }

此时

cmd->conf=16

ctx_index=0

ngx_http_conf_ctx_t -CSDN博客

cf->ctx + cmd->conf ,跳过前 2 个字段,指向第3个字段 loc_conf

根据索引在 数组中取出指针,它指向该 模块在 location 级对应的配置结构体

复制代码
rv = cmd->set(cf, cmd, conf);

调用当前指令的 set 函数指针指向的函数,处理该指令的配置

当前 是 ngx_http_core_module 模块的 root 指令

set 指向的是 ngx_http_core_root 函数

ngx_http_core_root-CSDN博客

复制代码
            if (rv == NGX_CONF_OK) {
                return NGX_OK;
            }

返回 NGX_OK

相关推荐
heartmoonq3 分钟前
npm 包抽象封装并发布完整指南
前端
红衣信3 分钟前
深入剖析 hooks-todos 项目:前端开发的实用实践
前端·react.js·面试
今禾3 分钟前
深入理解 JavaScript 事件监听机制
前端·javascript
FogLetter3 分钟前
从饼干到Cookie:前端存储的身份密码本
前端·javascript
网硕互联的小客服6 分钟前
未来趋势:AI与量子计算对服务器安全的影响
运维·服务器·网络·网络安全·量子计算
Spider_Man7 分钟前
🎭 React受控与非受控组件:一场"控制权"的争夺战
前端·react.js
Mintopia12 分钟前
LOD:图形世界里的 “看人下菜碟” 艺术
前端·javascript·计算机图形学
MicroTech202513 分钟前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
黑客老李14 分钟前
EDUSRC:智慧校园通用漏洞挖掘(涉校园解决方案商)
服务器·前端·网络·安全·web安全
宇钶宇夕15 分钟前
STEP 7 MicroWIN SMART V2.2 的详细安装步骤及注意事项
运维·服务器·程序人生·自动化