HTTP API

定数

HTTP リターン コード

これらの定数はモジュール内でHTTPリターンコードを参照するのが簡単です

オプション
NGX_HTTP_CONTINUE 100
NGX_HTTP_SWITCHING_PROTOCOLS 101
NGX_HTTP_PROCESSING 102
NGX_HTTP_OK 200
NGX_HTTP_CREATED 201
NGX_HTTP_ACCEPTED 202
NGX_HTTP_NO_CONTENT 204
NGX_HTTP_PARTIAL_CONTENT 206
NGX_HTTP_SPECIAL_RESPONSE 300
NGX_HTTP_MOVED_PERMANENTLY 301
NGX_HTTP_MOVED_TEMPORARILY 302
NGX_HTTP_SEE_OTHER 303
NGX_HTTP_NOT_MODIFIED 304
NGX_HTTP_TEMPORARY_REDIRECT 307
NGX_HTTP_BAD_REQUEST 400
NGX_HTTP_UNAUTHORIZED 401
NGX_HTTP_FORBIDDEN 403
NGX_HTTP_NOT_FOUND 404
NGX_HTTP_NOT_ALLOWED 405
NGX_HTTP_REQUEST_TIME_OUT 408
NGX_HTTP_CONFLICT 409
NGX_HTTP_LENGTH_REQUIRED 411
NGX_HTTP_PRECONDITION_FAILED 412
NGX_HTTP_REQUEST_ENTITY_TOO_LARGE 413
NGX_HTTP_REQUEST_URI_TOO_LARGE 414
NGX_HTTP_UNSUPPORTED_MEDIA_TYPE 415
NGX_HTTP_RANGE_NOT_SATISFIABLE 416
NGX_HTTP_CLOSE 444
NGX_HTTP_NGINX_CODES 494
NGX_HTTP_REQUEST_HEADER_TOO_LARGE 494
NGX_HTTPS_CERT_ERROR 495
NGX_HTTPS_NO_CERT 496
NGX_HTTP_TO_HTTPS 497
NGX_HTTP_CLIENT_CLOSED_REQUEST 499
NGX_HTTP_INTERNAL_SERVER_ERROR 500
NGX_HTTP_NOT_IMPLEMENTED 501
NGX_HTTP_BAD_GATEWAY 502
NGX_HTTP_SERVICE_UNAVAILABLE 503
NGX_HTTP_GATEWAY_TIME_OUT 504
NGX_HTTP_INSUFFICIENT_STORAGE 507

構造

ngx_http_request_t

ngx_http_request_t

リクエストと応答の詳細を含む構造この構造の多くのメンバーがあるため、ここでは使われるであろう一部分だけをリスト化します

ngx_connection_t *connection

構造のための接続オブジェクトUseful for its log member.

ngx_http_upstream_t *upstream

upstreamリクエストのための詳細を設定するオブジェクト

ngx_pool_t *pool

リクエストを持つ割り当てのために使われるメモリプール

ngx_http_headers_in_t headers_in

リクエストに伴ってやってくるhttpヘッダを含むオブジェクト

ngx_http_headers_out_t headers_out

クライアントに返されるhttpヘッダを含むオブジェクト

ngx_str_t uri

リクエストされたパスを含む文字列

ngx_str_t args

疑問符の後のgetリクエスト引数を含む文字列

ngx_http_request_t *main

メインリクエストへのポインタ。それがメインリクエストである場合は自身の構造を指します

ngx_http_request_t *parent

親のリクエストへのポインタ

header_only:1

ボディのクライアントへの送信を無効にするためには1 を設定します

ngx_http_headers_in_t

ngx_http_headers_in_t

やってくるヘッダデータを格納するための構造

ngx_list_t headers

やってくるヘッダを含むリスト

ngx_table_elt_t *host

hostヘッダ

ngx_table_elt_t *connection

望ましい接続オプション (closekeep-aliveのようなもの)

ngx_table_elt_t *if_modified_since

やってくるヘッダのIf-Modified-Since

ngx_table_elt_t *if_unmodified_since

やってくるヘッダのIf-Unmodified-Since

ngx_table_elt_t *if_match

やってくるヘッダのIf-Match

ngx_table_elt_t *if_none_match

やってくるヘッダのIf-None-Match

ngx_table_elt_t *user_agent

クライアントのユーザエージェント

ngx_table_elt_t *referer

クライアントによって提供されるrefere

ngx_table_elt_t *content_length

クライアントのPOSTデータの内容の長さ

ngx_table_elt_t *content_type

クライアントのPOSTデータの内容の種類

ngx_table_elt_t *range

内容として要求された領域のバイト

ngx_table_elt_t *if_range

やってくるヘッダのIf-Range

ngx_table_elt_t *transfer_encoding

データ転送のためのエンコーディング

ngx_table_elt_t *expect

やってくるヘッダのExpect

ngx_table_elt_t *upgrade

The connection upgrade request from the client

ngx_table_elt_t *accept_encoding

クライアントが受け取るであろうエンコーディング

ngx_table_elt_t *via

クライアントによって使われるプロキシの詳細

ngx_table_elt_t *authorization

認証リクエストヘッダ

ngx_table_elt_t *keep_alive

クライアントの keep-alive リクエストヘッダ

ngx_array_t x_forwarded_for

ロードバランサのためのX-Forwarded-For ヘッダ

ngx_table_elt_t *x_real_ip

ロードバランサのためのX-Real-IPヘッダ

ngx_table_elt_t *accept

応答として受け付けられる内容の種類

ngx_table_elt_t *accept_language

応答として使われる受け付けられる人間の言語

ngx_table_elt_t *depth

やってくるヘッダのDepth

ngx_table_elt_t *destination

やってくるヘッダのDestination

ngx_table_elt_t *overwrite

やってくるヘッダのOverwrite

ngx_table_elt_t *date

クライアントのリクエストの date/time

ngx_str_t user

The decoded user from the authorization header

ngx_str_t passwd

認証ヘッダからの復号化されたパスワード

ngx_array_t cookies

やってくるクッキーを含む配列

ngx_str_t server

upstreamからのサーバ文字列

off_t content_length_n

やってくる内容の長さ

time_t keep_alive_n

keep alive タイムアウト時間

unsigned connection_type:2

接続が NGX_HTTP_CONNECTION_KEEP_ALIVE あるいは NGX_HTTP_CONNECTION_CLOSEかどうかを説明するフラグ

unsigned chunked:1

chunkedエンコーディングを指定するboolean

unsigned msie:1

クライアントとしてInternet Explorerを指定するboolean

unsigned msie6:1

クライアントとしてInternet Explorer 6 を指定するboolean

unsigned opera:1

クライアントとしてOperaを指定するboolean

unsigned gecko:1

クライアントとしてGeckoレンダリングエンジンを指定するboolean (ie. Firefox)

unsigned chrome:1

クライアントとしてChromeを指定するboolean

unsigned safari:1

クライアントとしてSafariを指定するboolean

unsigned konqueror:1

クライアントとしてKonquerorを指定するboolean

ngx_http_headers_out_t

ngx_http_headers_out_t

外に行くヘッダデータを格納する構造

ngx_list_t headers

追加される付加的なヘッダを含むリスト

ngx_uint_t status

返すステータス。あり得る選択肢は HTTP Return Codes

ngx_table_elt_t *content_encoding

"Content-Encoding"ヘッダのキーと値の両方を格納します。

size_t content_type_len

コンテントタイプの長さ。通常これはcontent_type.lenと同じに設定されなければなりません

ngx_str_t content_type

内容のmime typeを含む文字列

off_t content_length_n

contentのボディの長さ

time_t last_modified_time

返されるcontentの最終更新時間

ngx_http_post_subrequest_t

ngx_http_post_subrequest_t

サブリクエストについてのコールバック関数を格納する構造

ngx_int_t (*ngx_http_post_subrequest_pt)(ngx_http_request_t *r, void *data, ngx_int_t rc)

引き起こされるコールバック関数

void *data

コールバック関数に送信する任意のデータへのポインタ

ngx_http_upstream_t

ngx_http_upstream_t
ngx_peer_connection_t peer

upstream peer のための接続の詳細

ngx_http_upstream_conf_t *conf

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

ngx_int_t (*create_request)(ngx_http_request_t *r)

リクエストのために要求されたバッファを割りあてるべきコールバック関数。成功時にはNGX_OKを返し、エラー時にはNGX_ERRORを返します。

ngx_int_t (*reinit_request)(ngx_http_request_t *r)

upstreamとの通信の試行が失敗した場合に、状態ポインタを再初期化するコールバック。成功時にはNGX_OKを返します。

ngx_int_t (*process_header)(ngx_http_request_t *r)

upstreamヘッダを取り出した後でクライアント応答のためにヘッダを設定するコールバック。成功時にはNGX_OKを返します。

void (*abort_request)(ngx_http_request_t *r)

クライアントがリクエストを中断した場合に引き起こされるコールバック。

void (*finalize_request)(ngx_http_request_t *r, ngx_int_t rc)

リクエストを終了するために引き起こされるコールバック。

ngx_table_elt_t

ngx_table_elt_t

NGINXハッシュテーブルからの要素。

hash

この要素を使うには1 を設定し、無視するには0を設定します

key

ハッシュ要素のためのキーを含む文字列

value

ハッシュ要素のための値を含む文字列

ngx_http_upstream_conf_t

ngx_http_upstream_conf_t

upstream/proxyハンドラのために使われるupstream設定オブジェクト

ngx_msec_t connect_timeout

upstreamについての接続タイムアウト

ngx_msec_t send_timeout

upstreamについての送信タイムアウト

ngx_msec_t read_timeout

upstreamについてのreadタイムアウト

ngx_msec_t next_upstream_timeout

次のupstreamに切り替わるまでのタイムアウト

ngx_uint_t store_access

ディスクへの一時ファイルのようなファイルを格納するためのパーミッション

ngx_bufs_t bufs

upstreamボディデータのためのバッファ

ngx_flag_t buffering

データをバッファするかどうか

size_t buffer_size

各バッファのサイズ。通常はngx_pagesizeに設定されるべきです

size_t max_temp_file_size

一時ファイルの最大サイズ

size_t temp_file_write_size

ボディがディスクに格納されるデータの総サイズ

ngx_array_t *hide_headers

downstreamに渡さないヘッダフィールドのリスト

ngx_array_t *pass_headers

通常無効にされているdownstreamへ渡すヘッダフィールドのリストこれらは: “Date”, “Server”, “X-Pad”, and “X-Accel-...”

機能

ngx_http_subrequest

ngx_int_t ngx_http_subrequest(ngx_http_request_t *r, ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **sr, ngx_http_post_subrequest_t *psr, ngx_uint_t flags)

指定されたURLへのサブリクエストを実行します

パラメータ:
  • r – メインリクエストオブジェクト
  • uri – 呼び出すURI
  • args – サブリクエストのためのGET引数
  • sr – 新しいリクエストオブジェクトを使って関数によって設定されるポインタへのポインタ
  • psr – リクエストが完了した場合に引き起こされるコールバック
  • flags – サブリクエストが完了した後でメモリ内にサブリクエストの結果を保持するためにNGX_HTTP_SUBREQUEST_IN_MEMORY を使います。
返り値:

リクエストをセットアップするのに成功した場合にはNGX_OK 、エラー時には NGX_ERROR

ngx_http_get_module_ctx

void *ngx_http_get_module_ctx(ngx_http_request_t *r, ngx_module_t module)

指定されたモジュールとリクエストについてのコンテキストデータを取得するためのマクロ

パラメータ:
  • r – コンテキストを取得するためのリクエスト
  • module – コンテキストを取得するためのモジュール
返り値:

コンテキストへのポインタ

ngx_http_set_ctx

void ngx_http_set_ctx(ngx_http_request_t *r, void *c, ngx_module_t module)

指定されたモジュールとリクエストについてのコンテキストデータを設定するためのマクロ

パラメータ:
  • r – コンテキストを設定するためのリクエスト
  • c – コンテキストデータのポインタ
  • module – コンテキストを設定するためのモジュール

ngx_http_parse_time

time_t ngx_http_parse_time(unsigned char *value, size_t len)

RFC822, RFC850 あるいは ISO C time 形式を含む文字列を、time_t 形式に変換する。

パラメータ:
  • value – 変換するtime文字列
  • len – 文字列の長さ
返り値:

変換されたtime_tオブジェクト

コールバック

ngx_http_output_header_filter_pt

ngx_int_t (*ngx_http_output_header_filter+pt)(ngx_http_request_t *r)

ヘッダフィルタへのコールバック。モジュール内ではこれは通常以下のように使われます:

static ngx_http_output_header_filter_pt ngx_http_next_header_filter;

ngx_http_output_body_filter_pt

ngx_int_t (*ngx_http_output_body_filter_pt)(ngx_http_request_t *r, ngx_chain_t *chain)

ボディフィルタへのコールバック。モジュール内ではこれは通常以下のように使われます:

static ngx_http_output_body_filter_pt ngx_http_next_body_filter;
TOP
inserted by FC2 system