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"';