ngx 全局变量共享内存,ngx全局变量共享


全局变量用法


            ctx = ngx_pcalloc(cf->pool, sizeof(ngx_http_limit_req_ctx_t));
            if (ctx == NULL) {
                return NGX_CONF_ERROR;
            }


            ctx->index = ngx_http_get_variable_index(cf, &value[i]);
            if (ctx->index == NGX_ERROR) {
                return NGX_CONF_ERROR;
            }


            ctx->var = value[i];




  ctx = limit->shm_zone->data;


        vv = ngx_http_get_indexed_variable(r, ctx->index);


        if (vv == NULL || vv->not_found) {
            continue;
        }


共享内存:
   shm_zone = ngx_shared_memory_add(cf, &name, size,
                                     &ngx_http_limit_req_module);
    if (shm_zone == NULL) {
        return NGX_CONF_ERROR;
    }


    if (shm_zone->data) {
        ctx = shm_zone->data;


        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
                           "%V \"%V\" is already bound to variable \"%V\"",
                           &cmd->name, &name, &ctx->var);
        return NGX_CONF_ERROR;
    }


    shm_zone->init = ngx_http_limit_req_init_zone;//初始化
shm_zone->data = ctx;


ngx_http_limit_req_init_zone  中 ngx_slab_alloc
http://www.360doc.com/content/12/0219/01/4947005_187732887.shtml


linux共享内存信号量同步


//---------------------







相关内容

    暂无相关文章