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,則認爲配置項一定是合法的. |