nginx配置項NGX_DIRECT_CONF,NGX_MAIN_CONF和NGX_ANY_CONF

Nginx配置指令類型

一、NGX_DIRECT_CONF:

全部NGX_DIRECT_CONF都是和NGX_MAIN_CONF同時出現的。NGX_DIRECT_CONF表示,配置文件對應的結構已經建立。對應NGX_CORE_MODULE類型的模塊,且模塊ngx_modules[]->ctx(上下文環境)成員ngx_core_module_t的create_conf不爲空。spa

Directive only in the main configuration file,例如已經提供的配置指令daemon,master_process等。debug

例如,對應配置usr root; create_conf不爲空。code

typedef struct {
    ngx_str_t             name;
    void               *(*create_conf)(ngx_cycle_t *cycle);
    char               *(*init_conf)(ngx_cycle_t *cycle, void *conf);
} ngx_core_module_t;

static ngx_core_module_t  ngx_core_module_ctx = {
    ngx_string("core"),
    ngx_core_module_create_conf,
    ngx_core_module_init_conf
};


二、NGX_MAIN_CONF:

絕大多數NGX_MAIN_CONF和NGX_DIRECT_CONF是同時出現的。對於單獨出現的NGX_MAIN_CONF表示,配置文件對應的結構尚未建立。配置文件中main區域的指令,都具備這個類型。  對應NGX_CORE_MODULE類型的模塊,且模塊ngx_modules[]->ctx(上下文環境)成員ngx_core_module_tgx_core_module_t的create_conf爲空。string

Directive only in the main configuration level,例如 http、mail、events、error_log等。it

例如,對應配置error_log   /usr/local/sms/logs/cache.log debug; create_conf爲空io

static ngx_core_module_t  ngx_errlog_module_ctx = {
    ngx_string("errlog"),
    NULL,
    NULL
};

 

三、NGX_ANY_CONF:

Directive can be used in at any level / directive,即該配置指令能夠出如今任意配置級別上。例如include mime.typesevent

相關文章
相關標籤/搜索