next up previous contents
Next: 3.2 基本的な設定 Up: 3.1 Nginxの基本構文 Previous: 3.1.1 コンテキスト

3.1.2 変数、値、文字列

nginx では、コメントは頭に # をつけます。コメントは、ディレクティブ の後から# をつけても構いません。

# comment line
worker_process 2;  # worker

nginx では、変数は頭に $ が置かれる。nginxでは非常に多数の変数が 用意されており、例えばHTTPの要求ヘッダの値にアクセスできるように $http_host 変数のような要求ヘッダのHostの値や、それが設定 されていない場合に備えて $host 変数に値がセットされていたり、
サーバ名をあらわす $servername 変数、クライアントのIPアドレスがセット されている $remote_addr、あるいは応答メッセージのヘッダへ アクセスするために、例えば $sent_http_keep_alive 変数などがある。

値は、数値と文字列がありますが、数値に関しては以下の略記号が使える ようになっています。

k,K キロバイト (2k などと表記できます)
m,M メガバイト
ms ミリ秒
s
h
d
w
M 月 (30日)
y 年 (365日)

なお、時間に関してはデフォルトは秒です。

次に、文字列は、nginx では単に何も指定せずに直接文字列を書くか、 あるいは '...' ,"..." で 表記します。シングルクォートとダブルクォートの区別はありません。 後者2つは、空白やセミコロンなど解釈される文字を含む文字列を表す場合に 用います。

その他に Core モジュールには以下のようなビルトインの変数が定義されて います。

$arg_name リクエスト中のname変数
$args GETリクエストにある全ての結合したパラメータ
$binary_remote_addr クライアントのバイナリでのIPアドレス
$body_bytes_sent レスポンスのバイト数
$connection 接続シリアルナンバー
$connection_requests 単一接続中のリクエスト数
$content_length リクエスト中の Content-Lengthに等しい値
$content_type リクエスト中の Contety-Typeに等しい値
$cookie_name name のCOOKIE の値
$document_root 現在のリクエストに対する root 又は alias ディレクティブの値
$document_uri $uri に同じ
$host リクエストヘッダのHost行に等しい、なければ処理しているサーバ名
  $http_host とは異なっている場合がある
$hostname gethostname で得られたクライアントのホスト名
$http_name 任意のリクエストヘッダフィールド名(小文字化、'-' は '_' に変換)
  $http_user_agent,$http_referer...
$https SSLならば "on",そうでないなら空
$is_args $argsがセットされていれば ? に、そうでなければ""
$limit_rate 接続レートの制限
$msec ミリ秒精度での現在時(秒)
$nginx_version 現在の Nginx のバージョン
$pid ワーカープロセスの PID
$pipe リクエストがパイプライン化されていたら "p" 、それ以外は "."
$query_string $args と同じ
$realpath_root root,aliasディレクティブの値に対する実際の絶対パス名
  シンボリックリンクも解決した後の本当のパス名
$remote_addr クライアントアドレス
$remote_port クライアントのポート番号
$remote_user Basic認証されたユーザ名
$request 完全なオリジナルのリクエスト
$request_body リクエストの本体
$request_body_file リクエストの本体のテンポラリのファイル名
$request_completion リクエストが成功の場合 OK、そうでないなら空
$request_filename root及びalias,URIから作成されたリクエスト対象のフルパス名
$request_length リクエストのサイズ ( ヘッダ、bodyを含む)
$request_method リクエストのメソッド ( ex. GET, POST,...)
$request_time リクエスト処理時間(ミリ秒精度の秒)
$request_uri クライアントから受け取ったオリジナルのリクエストURI
$scheme HTTPスキーム (ex. http, https )
$sent_http_name 任意のレスポンスヘッダのフィールド(小文字化、'-' は '_' に)
  $sent_http_cache_control, $sent_http_content_type
$server_addr サーバアドレス
$server_name サーバ名
$server_port サーバのポート番号
$server_protocol リクエストのプロトコル(ex. HTTP/1.0, HTTP/1.1)
$status レスポンスのステータス
$tcpinfo_rtt クライアントのTCPコネクション情報
$tcpinfo_rttvar TCP_INFOソケットオプションがサポートされている
$tcpinfo_snd_cwnd システムで利用可能
$tcpinfo_rcv_space  
$time_iso8601 ISO8601形式でのローカル時間
$time_local Common Log 形式でのローカル時間
$uri パラメータなしのリクエストURI
  正規化され、内部リダイレクトやインデックスを利用することにより変更されている
  場合もある。


next up previous contents
Next: 3.2 基本的な設定 Up: 3.1 Nginxの基本構文 Previous: 3.1.1 コンテキスト
Noriyo Kanayama