nginxには組み込みの変数が$variableという形式でアクセスできます。
ドキュメントには色々書いておりますが、毎回
「実際にどんな値が入るのかな?」
と思いますので、調べました。
ドキュメント引用
2016/07/12時点です。
※追記:こんなページもあるようです
http://nginx.org/en/docs/varindex.html
(@cubicdaiya ++ !)
variable | 説明 |
---|---|
$arg_name | argument name in the request line (補足:{name}部分を変えることで、任意のクエリパラメータの値にアクセス出来ます) |
$args | arguments in the request line |
$binary_remote_addr | client address in a binary form, value’s length is always 4 bytes for IPv4 addresses or 16 bytes for IPv6 addresses |
$body_bytes_sent | number of bytes sent to a client, not counting the response header; this variable is compatible with the “%B” parameter of the mod_log_config Apache module |
$bytes_sent | number of bytes sent to a client (1.3.8, 1.2.5) |
$connection | connection serial number (1.3.8, 1.2.5) |
$connection_requests | current number of requests made through a connection (1.3.8, 1.2.5) |
$content_length | “Content-Length” request header field |
$content_type | “Content-Type” request header field |
$cookie_name | the name cookie |
$document_root | root or alias directive’s value for the current request |
$document_uri | same as $uri |
$host | in this order of precedence: host name from the request line, or host name from the “Host” request header field, or the server name matching a request |
$hostname | host name |
$http_name | arbitrary request header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores (補足:{name}部分を変えることで、任意のリクエストヘッダにアクセス出来ます。このとき、アルファベットは小文字にし、「-」は「_」にして記載します。 例えば X-Hoge にアクセスしたいならば、$http_x_hoge となります。) |
$https | “on” if connection operates in SSL mode, or an empty string otherwise |
$is_args | “?” if a request line has arguments, or an empty string otherwise |
$limit_rate | setting this variable enables response rate limiting; see limit_rate |
$msec | current time in seconds with the milliseconds resolution (1.3.9, 1.2.6) |
$nginx_version | nginx version |
$pid | PID of the worker process |
$pipe | “p” if request was pipelined, “.” otherwise (1.3.12, 1.2.7) |
$proxy_protocol_addr | client address from the PROXY protocol header, or an empty string otherwise (1.5.12) The PROXY protocol must be previously enabled by setting the proxy_protocol parameter in the listen directive. |
$proxy_protocol_port | client port from the PROXY protocol header, or an empty string otherwise (1.11.0) The PROXY protocol must be previously enabled by setting the proxy_protocol parameter in the listen directive. |
$query_string | same as $args |
$realpath_root | an absolute pathname corresponding to the root or alias directive’s value for the current request, with all symbolic links resolved to real paths |
$remote_addr | client address |
$remote_port | client port |
$remote_user | user name supplied with the Basic authentication |
$request | full original request line |
$request_body | request body The variable’s value is made available in locations processed by the proxy_pass, fastcgi_pass, uwsgi_pass, and scgi_pass directives when the request body was read to a memory buffer. |
$request_body_file | name of a temporary file with the request body At the end of processing, the file needs to be removed. To always write the request body to a file, client_body_in_file_only needs to be enabled. When the name of a temporary file is passed in a proxied request or in a request to a FastCGI/uwsgi/SCGI server, passing the request body should be disabled by the proxy_pass_request_body off, fastcgi_pass_request_body off, uwsgi_pass_request_body off, or scgi_pass_request_body off directives, respectively. |
$request_completion | “OK” if a request has completed, or an empty string otherwise |
$request_filename | file path for the current request, based on the root or alias directives, and the request URI |
$request_id | unique request identifier generated from 16 random bytes, in hexadecimal (1.11.0) |
$request_length | request length (including request line, header, and request body) (1.3.12, 1.2.7) |
$request_method | request method, usually “GET” or “POST” |
$request_time | request processing time in seconds with a milliseconds resolution (1.3.9, 1.2.6); time elapsed since the first bytes were read from the client |
$request_uri | full original request URI (with arguments) |
$scheme | request scheme, “http” or “https” |
$sent_http_name | arbitrary response header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores |
$server_addr | an address of the server which accepted a request Computing a value of this variable usually requires one system call. To avoid a system call, the listen directives must specify addresses and use the bind parameter. |
$server_name | name of the server which accepted a request |
$server_port | port of the server which accepted a request |
$server_protocol | request protocol, usually “HTTP/1.0”, “HTTP/1.1”, or “HTTP/2.0” |
$status | response status (1.3.2, 1.2.2) |
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space | information about the client TCP connection; available on systems that support the TCP_INFO socket option |
$time_iso8601 | local time in the ISO 8601 standard format (1.3.12, 1.2.7) |
$time_local | local time in the Common Log Format (1.3.12, 1.2.7) |
$uri | current URI in request, normalized The value of $uri may change during request processing, e.g. when doing internal redirects, or when using index files. |
リクエスト結果
- nginxバージョン
- nginx 1.11.0
- リクエストURL
レスポンスは
"body\n"(\nは改行)
という中身のファイルです。
Variable名 | 実際の値 |
---|---|
arg_name | hogehoge |
args | name=hogehoge&arg2=fugafuga |
binary_remote_addr | \xC0\xA8\x00\x01 |
body_bytes_sent | 5 |
bytes_sent | 254 |
connection | 579 |
connection_requests | 3 |
content_length | - |
content_type | - |
cookie_name | - |
document_root | /var/www/takada |
document_uri | /conf-test/path |
host | takada.example.com |
hostname | dummy-host |
http_name | - |
https | |
is_args | ? |
limit_rate | 0 |
msec | 1468303435.418 |
nginx_version | 1.11.2 |
pid | 18163 |
pipe | . |
proxy_protocol_addr | |
proxy_protocol_port | |
query_string | name=hogehoge&arg2=fugafuga |
realpath_root | /var/www/takada |
remote_addr | 192.168.0.1 |
remote_port | 17873 |
remote_user | - |
request | GET /conf-test/path?name=hogehoge&arg2=fugafuga HTTP/1.1 |
request_body | - |
request_body_file | - |
request_completion | OK |
request_filename | /var/www/takada/conf-test/path |
request_id | 91f47afaceb2183206ab115556629bdc |
request_length | 518 |
request_method | GET |
request_time | 0.000 |
request_uri | /conf-test/path?name=hogehoge&arg2=fugafuga |
scheme | http |
sent_http_name | - |
server_addr | 192.168.0.1 |
server_name | takada.example.com |
server_port | 80 |
server_protocol | HTTP/1.1 |
status | 200 |
tcpinfo_rtt | 10000, 3750, 10, 14600 |
time_iso8601 | 2016-07-12T15:03:55+09:00 |
time_local | 12/Jul/2016:15:03:55 +0900 |
uri | /conf-test/path |