設定API

ngx_conf_t

ngx_conf_t

設定オブジェクトへのポインタ

ngx_keyval_t

ngx_keyval_t

設定キー値へのポインタ

構造

ngx_command_t

ngx_command_t

モジュールのための設定ディレクティブを定義するためのstruct。

この struct は一般的に設定ディレクティブの静的な配列を生成するために使われるでしょう。配列はngx_null_commandを使って終わられなければなりません。メールモジュールの例:

static ngx_command_t  ngx_mail_commands[] = {

    { ngx_string("mail"),
      NGX_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
      ngx_mail_block,
      0,
      0,
      NULL },

      ngx_null_command
};

例では以下が使われています: Catch Body Filter Example

ngx_str_t name

ディレクティブの名前

ngx_uint_t type
種類 解説
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_TAKE1 | NGX_CONF_TAKE2 のエイリアス)
NGX_CONF_TAKE13 ディレクティブは1つあるいは3つの引数を取ります (NGX_CONF_TAKE1 | NGX_CONF_TAKE3のエイリアス)
NGX_CONF_TAKE23 ディレクティブは2つまたは3つの引数を取ります (NGX_CONF_TAKE2 | NGX_CONF_TAKE3のエイリアス)
NGX_CONF_TAKE123 ディレクティブは1から3つの引数を取ります (NGX_CONF_TAKE1 | NGX_CONF_TAKE2 | NGX_CONF_TAKE3のエイリアス)
NGX_CONF_TAKE1234 ディレクティブは1から4つの引数を取ります (NGX_CONF_TAKE1 | NGX_CONF_TAKE2 | NGX_CONF_TAKE3 | NGX_CONF_TAKE4のエイリアス)
NGX_CONF_BLOCK 引数は設定ブロックです
NGX_CONF_FLAG ディレクティブは onoffの値を持つフラグです
NGX_CONF_ANY ディレクティブは0個以上の引数を取ります
NGX_CONF_1MORE ディレクティブは1つ以上の引数を取ります
NGX_CONF_2MORE ディレクティブは2つ以上の引数を取ります
NGX_DIRECT_CONF メインの設定ファイルの中だけにあるディレクティブ
NGX_MAIN_CONF メインの設定レベルの中だけにあるディレクティブ
NGX_ANY_CONF ディレクティブはどのレベル/ディレクティブの中でも使うことができます
NGX_HTTP_MAIN_CONF httpディレクティブのためのディレクティブ
NGX_HTTP_SRV_CONF httpディレクティブの中のserverディレクティブのためのディレクティブ
NGX_HTTP_LOC_CONF httpディレクティブの中のlocationディレクティブのためのディレクティブ
NGX_HTTP_UPS_CONF httpディレクティブの中のupstreamディレクティブのためのディレクティブ
NGX_HTTP_SIF_CONF serverブロックのif文のためのディレクティブ
NGX_HTTP_LIF_CONF locationブロックのif文のためのディレクティブ
NGX_HTTP_LMT_CONF limit_except ブロックのためのディレクティブ
char *(set)(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)

ディレクティブが設定の中で見つかった場合に呼ばれるコールバック関数これは、成功時には NGX_CONF_OKを返し、エラー時にはNGX_CONF_ERRORを返さなければなりません。

NGINXと一緒にすでに提供されていて使うことができる幾つかのコールバックハンドラがあります:

コールバック名 データタイプ 解説
ngx_conf_set_flag_slot ngx_flag_t 真偽値としてonoff が可能です
ngx_conf_set_str_slot ngx_str_t  
ngx_conf_set_str_array ngx_array_t * ngx_str_tの配列へのポインタを返します
ngx_conf_set_keyval_slot ngx_array_t * ngx_keyval_tの配列へのポインタを返します
ngx_conf_set_num_slot ngx_int_t  
ngx_conf_set_size_slot size_t  
ngx_conf_set_off_slot off_t  
ngx_conf_set_msec_slot ngx_msec_t  
ngx_conf_set_sec_slot time_t  
ngx_conf_set_bufs_slot ngx_bufs_t  
ngx_conf_set_bitmask_slot ngx_uint_t  
パラメータ:
  • cf – 設定オブジェクト
  • cmd – このstructへのポインタ
  • conf – 設定オブジェクトのためのコンテキストへのポインタ
ngx_uint_t conf

ディレクティブの値が保存されるべき場所。可能な選択肢は:

  • NGX_HTTP_MAIN_CONF_OFFSET
  • NGX_HTTP_LOC_CONF_OFFSET
  • NGX_HTTP_SRV_CONF_OFFSET
  • NGX_MAIL_MAIN_CONF_OFFSET
  • NGX_MAIL_SRV_CONF_OFFSET
  • NGX_STREAM_MAIN_CONF_OFFSET
  • NGX_STREAM_SRV_CONF_OFFSET
ngx_uint_t offset

このディレクティブのためのデータを保存する先の設定struct内でのオフセット。これは標準Cのstddef.hoffsetof()マクロを使って設定されなければなりません。

void *post

post-processor関数を含むngx_conf_post_t structへのポインタ。

ngx_conf_post_t

ngx_conf_post_t

post processorの設定へのポインタを含むstruct

char *(*ngx_conf_post_handler_pt)(ngx_conf_t *cf, void *data, void *conf)

設定オプションを処理した後で呼ばれるコールバック関数。これは、成功時には NGX_CONF_OKを返し、エラー時にはNGX_CONF_ERRORを返さなければなりません。

パラメータ:
  • cf – 設定オブジェクト
  • data – 任意のデータのポインタ。通常はこのstructのためのポインタへ設定されます
  • conf – 設定データポインタ

機能

ngx_http_conf_get_module_main_conf

void *ngx_http_conf_get_module_main_conf(ngx_conf_t *cf, ngx_module_t *module)

設定オブジェクトからモジュールのhttpコア設定オブジェクトを取得するマクロ

パラメータ:
  • cf – 設定オブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのコア設定structへのポインタ

ngx_http_conf_get_module_srv_conf

void *ngx_http_conf_get_module_srv_conf(ngx_conf_t *cf, ngx_module_t *module)

設定オブジェクトからモジュールのhttpサーバblock設定オブジェクトを取得するマクロ

パラメータ:
  • cf – 設定オブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのサーバblock設定structへのポインタ

ngx_http_conf_get_module_loc_conf

void *ngx_http_conf_get_module_loc_conf(ngx_conf_t *cf, ngx_module_t *module)

設定オブジェクトからモジュールのhttp location block設定オブジェクトを取得するマクロ

パラメータ:
  • cf – 設定オブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのlocation block設定structへのポインタ

ngx_http_get_module_main_conf

void *ngx_http_get_module_main_conf(ngx_http_request_t *r, ngx_module_t *module)

設定オブジェクトからモジュールのhttpコア request オブジェクトを取得するマクロ

パラメータ:
  • request – requestオブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのコア設定structへのポインタ

ngx_http_get_module_srv_conf

void *ngx_http_get_module_srv_conf(ngx_http_request_t *r, ngx_module_t *module)

requestオブジェクトからモジュールのhttp server block設定オブジェクトを取得するマクロ

パラメータ:
  • request – requestオブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのサーバblock設定structへのポインタ

ngx_http_get_module_loc_conf

void *ngx_http_get_module_loc_conf(ngx_http_request_t *r, ngx_module_t *module)

requestオブジェクトからモジュールのhttp location block設定オブジェクトを取得するマクロ

例では以下が使われています: Catch Body Filter Example

パラメータ:
  • request – requestオブジェクト
  • module – 設定を取得するモジュール
返り値:

モジュールのためのlocation block設定structへのポインタ

TOP
inserted by FC2 system