ngx_command_t 結構體中type成員的取值及其意義

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,則認爲配置項一定是合法的.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章