1、默认日志格式
Nginx 标准默认 combined 组合日志格式定义:
log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
access_log /var/log/nginx/access.log combined;
整条打印日志样例:
39.107.58.204 - - [01/Jul/2026:06:31:58 +0800] "GET /istops/images/aton-license.txt HTTP/1.1" 404 564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/108.0.0.0 Safari/537.36"
2、参数
详细解释
1. $remote_addr
- 含义:客户端真实 IP 地址
- 示例:
39.107.58.204 - 补充: 若前端有 CDN / 反向代理(Nginx、Apache),该值会变成代理服务器 IP,拿不到真实访客 IP; 此时需要配置
$http_x_forwarded_for获取真实用户 IP。
2. -(占位符,对应 $remote_user)
- 含义:HTTP Basic Auth 认证的登录用户名
- 示例里是
-:代表本次请求没有使用账号密码登录,无认证用户。 - 场景:网站开启登录鉴权(基础认证)时,这里会打印登录账号。
3. [$time_local]
- 含义:服务器本地访问时间,带时区
- 格式模板:
[日/月/年:时:分:秒 时区偏移] - 示例:
[01/Jul/2026:06:31:58 +0800]- 01/Jul/2026:2026 年 7 月 1 日
- 06:31:58:06 点 31 分 58 秒
+0800:东八区(北京时间)
4. "$request"
- 含义:完整 HTTP 请求行,包裹双引号
- 格式:
请求方法 请求URI HTTP协议版本 - 示例:
"GET /istops/images/aton-license.txt HTTP/1.1"- GET:读取资源的请求方法(POST/ PUT/ DELETE 等为提交、修改操作)
- /istops/images/aton-license.txt:用户访问的接口 / 文件路径
- HTTP/1.1:客户端使用的 HTTP 协议版本
5. $status
- 含义:HTTP 响应状态码
- 示例:
404常见状态码分类: - 2xx:成功(200 正常、206 分片)
- 3xx:重定向(301 永久跳转、302 临时跳转)
- 4xx:客户端错误(404 资源不存在、403 无权限、405 方法不允许)
- 5xx:服务器错误(500 程序崩溃、502 网关异常、503 服务不可用)
6. $body_bytes_sent
- 含义:发送给客户端的响应体字节大小(不包含响应头)
- 示例:
564代表本次 404 页面返回给浏览器的数据共 564 字节;静态图片、视频这里数值会很大。
7. "$http_referer"
- 含义:请求来源页面,引荐地址,双引号包裹
- 示例:
"-"-:无来源,用户直接输入网址、爬虫直接调用接口;- 有值示例:
"shturl.cc/9bg6kae1dH",代表用户从首页点击链接跳转到当前页面。
8. "$http_user_agent"
- 含义:客户端 UA 标识,识别设备、系统、浏览器,双引号包裹
- 示例:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/108.0.0.0 Safari/537.36"从 UA 可判断:
- 操作系统:Windows10/11
- 浏览器:Chrome 108 版本
- 区分:手机、爬虫、PC、小程序、API 请求等
极简记忆对应表
| 日志片段 | 变量名 | 核心作用 |
|---|---|---|
| 39.107.58.204 | $remote_addr | 访客 IP |
| - | $remote_user | 登录用户名 |
| 01/Jul/2026:06:31:58 +0800 | $time_local | 访问时间 |
| "GET /xxx.txt HTTP/1.1" | $request | 请求行为 + 地址 |
| 404 | $status | 请求结果状态码 |
| 564 | $body_bytes_sent | 返回数据大小 |
| "-" | $http_referer | 来源页面 |
| "Chrome/108..." | $http_user_agent | 浏览器 / 设备信息 |
3、扩展:常用额外日志变量(生产环境经常加)
默认 combined 格式信息有限,线上一般会扩展这些参数:
$request_time:请求总耗时(单位秒,保留小数,排查慢接口核心指标)$upstream_response_time:后端服务处理耗时(代理后端 Java/Python 服务时用)$http_x_forwarded_for:CDN / 代理转发后的真实访客 IP$request_length:客户端请求包总字节大小$http_cookie:请求携带的 Cookie 内容$server_name:当前请求访问的域名