Nginx 入门实战(4)--Nginx 常用变量说明
Nginx 中的很多参数可以使用内置的变量来设置,本文主要介绍一些常用的变量。
1、Nginx 配置文件中变量使用
http { ... log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; ... server { listen 8089; server_name localhost; location /abc { proxy_pass http://10.49.196.30:8080/abc; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ... } ...
在该配置文件中使用多个变量来定义日期格式(log_format),并使用变量来设置传递给代理服务器的请求头(proxy_set_header)。
2、常用变量说明
| 变量 | 说明 |
| $arg_name | 表示请求行中的任意参数,name 为参数名称 |
| $args | 表示请求行中的参数部分 |
| $binary_remote_addr | 二进制形式表示的客户端地址 |
| $body_bytes_sent | 发送到客户端的字节数,不包括响应头 |
| $bytes_received | 接受到客户端的字节数 |
| $bytes_sent | 发送到客户端的字节数 |
| $connection | 连接序列号 |
| $connection_requests | 当前连接的请求数量 |
| $connection_time | 连接时间,单位为:ms |
| $cookie_name | 表示任意 cookie,name 为 cookie 名称 |
| $date_gmt | GMT 时间 |
| $date_local | 本地时间 |
| $host | 按照以下顺序获取主机信息:请求行中的主机名,或“Host”请求头字段中的主机名,或与请求匹配的服务器名。 |
| $hostname | 主机名 |
| $http_name | 表示任意请求头;name 为请求头名称,其中破折号被下划线替换并转换为小写;如:$http_user_agent,$http_x_forwarded_for |
| $proxy_add_x_forwarded_for | 将 $remote_addr 的值附加到“X−Forwarded−For”客户端请求头中,由逗号分隔。如果客户端请求头中不存在“X−Forwarded−For”,则 $proxy_add_x_forwarded_for 等于 $remote_addr 。 |
| $proxy_host | 代理服务器的地址和端口 |
| $proxy_port | 代理服务器的端口 |
| $query_string | 同 $args |
| $remote_addr | 客户端地址 |
| $remote_port | 客户端端口 |
| $remote_user | Basic 身份验证中提供的用户名 |
| $request | 完整请求行 |
| $request_body | 请求体 |
| $request_body_file | 保存请求体的临时文件 |
| $request_length | 请求长度(包括请求行、头部和请求体) |
| $request_method | 请求方法 |
| $request_time | 请求处理时间,单位为:ms |
| $request_uri | 完整请求行 |
| $scheme | 请求协议,http 或 https |
| $server_addr | 接受请求的服务器地址 |
| $server_name | 接受请求的服务器名称 |
| $server_port | 接受请求的服务器端口 |
| $server_protocol | 请求协议,通常为 HTTP/1.0、HTTP/1.1 或 HTTP/2.0 |
| $ssl_cipher | 建立 SSL 连接所使用的加密套件名称 |
| $ssl_ciphers | 客户端支持的加密套件列表 |
| $ssl_client_escaped_cert | 客户端 PEM 格式的证书 |
| $ssl_protocol | 建立 SSL 连接的协议 |
| $status | 响应状态码 |
| $time_iso8601 | ISO 8601 标准格式的本地时间 |
| $time_local | Common Log 格式的本地时间 |
| $upstream_addr | upstream 服务器的 ip 和端口 |
| $upstream_bytes_received | 从 upstream 服务器接收的字节数 |
| $upstream_bytes_sent | 发送给 upstream 服务器的字节数 |
| $upstream_http_name | 表示 upstream 服务器任意响应头,name 为响应头名称,其中破折号被下划线替换并转换为小写 |
| $upstream_response_length | upstream 服务器的响应长度,单位为:字节 |
| $upstream_response_time | upstream 服务器的响应时间,单位为:秒 |
| $upstream_status | upstream 服务器的响应状态码 |
| $uri | 请求 uri |
浙公网安备 33010602011771号