ngx_command_t 结构体
struck ngx_command_s {
ngx_str_t name;
ngx_uint_t type;
char *(*set)(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
ngx_uint_t conf;
ngx_uint_t offset;
void *post;
};
type类型 |
type取值 |
意义 |
处理配置项时获取当前配置块的方式 |
NGX_DIRECT_CONF |
一般由NGX_CORE_MODULE 类型的核心模块使用,仅与下面的NGX_MAIN_CONF同时设置,表示模块需要解析不属于任何{}内的全部配置项.它实际上会指定set方法里的第3个参数conf的值, 使之指向每个模块解析全局配置项的配置结构体 |
|
NGX_ANY_CONF |
目前未使用,配置与否均无意义 |
配置项可以在哪些{}配置块出现 |
NGX_MAIN_CONF |
配置项可以出现在全局配置中,既不属于任何{}配置块 |
|
NGX_EVENT_CONF |
配置项可以出现在events{}块内 |
|
NGX_MAIL_SRV_CONF |
配置项可以出现在server{}块内,然而该server{}块必须属于mail{}块或者imap{}块 |
|
NGX_MAIL_MAIN_CONF |
配置项可以出现在mail{}块或者imap{}块内 |
|
NGX_HTTP_MAIN_CONF |
配置项可以出现在http{}块 |
|
NGX_HTTP_SRV_CONF |
配置项可以出现在server{}块内,然而server块必须属于http{}块 |
|
NGX_HTTP_LOC_CONF |
配置项可以出现在location{}块内,然而该location块必须属于http{}块 |
|
NGX_HTTP_UPS_CONF |
配置项可以出现在upstream{}块内, 然而该upstream块必须属于http{}块 |
|
NGX_HTTP_SIF_CONF |
配置项可以出现在server块内的if{}块中,目前仅有rewrite模块会使用,该if{}块必须属于http{}块 |
|
NGX_HTTP_LIF_CONF |
配置项可以出现在location块内的if{}块中,目前仅rewrite模块使用,该if{}块必须属于http{}块 |
|
NGX_HTTP_LMT_CONF |
配置项可以出现在limit_except{}块内,然而该limit_except块必须属于http{}块 |
限制配置项的参数个数 |
NGX_CONF_NOARGS |
配置项不携带任何参数 |
|
NGX_CONF_NOARGS |
配置项不携带任何参数 |
|
NGX_CONF_TAKE1 |
配置项可以携带1个参数 |
|
NGX_CONF_TAKE2 |
配置项可以携带2个参数 |
|
NGX_CONF_TAKE3 |
配置项可以携带3个参数 |
|
NGX_CONF_TAKE4 |
配置项可以携带4个参数 |
|
NGX_CONF_TAKE5 |
配置项可以携带5个参数 |
|
NGX_CONF_TAKE6 |
配置项可以携带6个参数 |
|
NGX_CONF_TAKE7 |
配置项可以携带7个参数 |
|
NGX_CONF_TAKE12 |
配置项可以携带1个或2个参数 |
|
NGX_CONF_TAKE13 |
配置项可以携带1个或3个参数 |
|
NGX_CONF_TAKE23 |
配置项可以携带2个或3个参数 |
|
NGX_CONF_TAKE123 |
配置项可以携带1~3个参数 |
|
NGX_CONF_TAKE1234 |
配置项可以携带1~4个参数 |
限制配置项后的参数出现的形式 |
NGX_CONF_ARGS_NUMBER |
目前未使用,无意义 |
|
NGX_CONF_BLOCK |
配置项定义了一种新的{}块 |
|
NGX_CONF_ANY |
不验证配置项携带的参数个数 |
|
NGX_CONF_FLAG |
配置项携带的参数只能是1个,并且参数的值只能是on或者off |
|
NGX_CONF_1MORE |
配置项携带的参数个数必须超过1个 |
|
NGX_CONF_2MORE |
配置项携带的参数个数必须超过2个 |
|
NGX_CONF_MULTI |
表示当前配置项可以出现在任意块中(包括不属于任何块的全局配置),它仅用于配合其他配置项使用,type中未加NGX_CONF_MULTI时,如果一个配置项出现在type成员未标明配置块中,那么Nginx会认为该配置项违法,最后将导致Nginx启动失败.但如果配置项中加入了NGX_CONF_MULTI,则认为配置项一定是合法的. |