温馨提示×

nginx日志怎么解读

小樊
44
2026-08-02 18:41:16
栏目: 编程语言

Nginx 日志主要分为 访问日志(access.log)错误日志(error.log)。下面用常见格式 + 示例 + 字段解释的方式,帮你快速读懂它们。


一、访问日志(access.log)

1️⃣ 默认日志格式示例

127.0.0.1 - - [10/Nov/2024:14:32:10 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0"

2️⃣ 字段逐个解释

客户端IP       用户标识  认证用户  时间                        请求方法  URL       协议   状态码 响应大小 Referer        User-Agent
127.0.0.1      -         -         [10/Nov/2024:14:32:10 +0800]  GET      /index.html HTTP/1.1 200   612     "-"          Mozilla/5.0

重点字段说明

字段 含义
127.0.0.1 客户端 IP
- 用户标识(基本不用)
- 认证用户(未登录为 -
[时间] 请求时间(时区)
"GET /index.html HTTP/1.1" 请求行
200 HTTP 状态码
612 返回内容大小(字节)
"-" Referer(来源页面)
"Mozilla/5.0" 浏览器 / 客户端信息

3️⃣ 常见状态码快速判断

状态码 含义
200 正常
301 / 302 重定向
304 缓存未修改
400 请求错误
401 未授权
403 禁止访问
404 页面不存在
500 服务器内部错误
502 后端错误(如 PHP / Java)
503 服务不可用
504 网关超时

二、错误日志(error.log)

1️⃣ 示例

2024/11/10 14:32:10 [error] 1234#1234: *5 open() "/usr/share/nginx/html/test.html" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /test.html HTTP/1.1", host: "localhost"

2️⃣ 字段解释

时间              级别      进程ID       错误描述                                  客户端IP       服务器名  请求信息
2024/11/10 14:32:10 [error] 1234#1234: *5 open() failed (2: No such file or directory) 127.0.0.1 localhost GET /test.html HTTP/1.1

3️⃣ 错误级别说明

级别 含义
debug 调试信息(一般不开启)
info 普通信息
notice 注意
warn 警告
error 错误(最常见)
crit 严重
alert 紧急
emerg 系统不可用

生产环境一般设置:

error_log /var/log/nginx/error.log warn;

三、如何查看日志

实时查看

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

查看指定 IP

grep "127.0.0.1" access.log

统计访问最多的 IP

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

统计 500 错误

grep " 500 " access.log

四、自定义日志格式(进阶)

http {
    log_format main '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

    access_log /var/log/nginx/access.log main;
}

常用变量:

  • $remote_addr:客户端 IP
  • $request:请求
  • $status:状态码
  • $body_bytes_sent:返回大小
  • $http_user_agent:浏览器

五、快速判断问题思路

网站打不开?

  • error.log
  • 看状态码(502 / 503 / 504)

访问异常?

  • access.log
  • 看 IP、URL、User-Agent

被攻击?

  • 某 IP 大量请求
  • 异常 URL
  • 非正常 User-Agent

如果你愿意,可以把具体的一条日志贴出来,我可以帮你逐字解读,并判断是正常访问还是异常问题。

0