nginxの設定で使える変数

メモ:

nginxでは、設定ファイルに変数を使うことができます。ここでは、あらかじめ用意されたCOREモジュールの変数で、使用頻度の高いのをまとめてみました。

nginxで使用頻度が高い変数

ここでは、設定例でよく見かける変数をまとめます。他にもたくさんあるようですので詳細は、公式ドキュメントを参照してください。

変数名 概要
$args GETパラメータ。「hoge.net?id=1&val=12345」にアクセスした場合、「test=1&test2=aaa」の部分が格納されます。
$document_root 設定されてるドキュメントルート。(例:/var/www/html)
$host アクセスされたURLのホスト名。(例:hoge.net)
$is_args リクエストパラメータがある場合「?」が格納され、パラメータが無い場合は空となります。
$query_string $argsと同じになります。
$remote_addr アクセス元のIPアドレス。
$remote_port アクセス元のポート番号。
$remote_user Basic認証で提供されたユーザ名。
$request 完全なオリジナルリクエスト行。
$request_method リクエストのメソッド。「GET」や「POST」などの値。
$request_uri アクセスされたuri情報。
$scheme リクエストのスキーム。「http」や 「http」などが格納されます。
$server_addr リクエストを受け付けたサーバのIPアドレス。
$server_name リクエストを受け付けたサーバの名前。
$server_port リクエストを受け付けたサーバのポート番号。
$server_protocol サーバのプロトコル情報が格納されています。「HTTP/1.0」、「HTTP/1.1」、「HTTP/2.0」などの値。
$status レスポンスステータス。
$body_bytes_sent 応答ヘッダを含まないクライアントへ送信されるバイト数。
$http_referer アクセス元がどこから来たのか。
$http_user_agent アクセス元のユーザエージェント。
$time_local Common Log フォーマットのローカルタイム。

使用例

簡単な使用例は、次のような設定となります。

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';