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