温馨提示×

怎样用命令查nginx日志

小樊
46
2026-09-05 17:42:18
栏目: 编程语言

下面按常见使用场景给你总结,如何用命令查 Nginx 日志(默认路径一般是 /var/log/nginx/)。


一、Nginx 日志在哪?

常见日志文件:

  • 访问日志:/var/log/nginx/access.log
  • 错误日志:/var/log/nginx/error.log

你也可以确认配置:

nginx -T | grep -E "access_log|error_log"

二、最基础查看命令

1️⃣ 实时查看日志(最常用)

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

2️⃣ 查看最后 N 行

tail -n 100 /var/log/nginx/access.log

3️⃣ 查看最前面的日志

head -n 50 /var/log/nginx/access.log

三、按条件筛选日志(重点)

1️⃣ 查某个 IP 的访问

grep "192.168.1.100" /var/log/nginx/access.log

2️⃣ 查 404 请求

grep " 404 " /var/log/nginx/access.log

3️⃣ 查 500 错误

grep " 500 " /var/log/nginx/error.log

4️⃣ 查某个接口

grep "/api/login" /var/log/nginx/access.log

四、统计类命令(很实用)

1️⃣ 统计访问最多的 IP

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

2️⃣ 统计状态码分布

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

3️⃣ 统计访问最多的 URL

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

五、配合时间查日志

1️⃣ 查某段时间(假设日志有时间戳)

grep "10/Aug/2024:14:" /var/log/nginx/access.log

2️⃣ 查最近 1 小时

date=$(date -d '1 hour ago' '+%d/%b/%Y:%H')
awk -v d="$date" '$4 > "["d' access.log

六、如果是 Docker / 容器

docker logs nginx
docker logs -f nginx

七、日志太大怎么办?

less access.log
  • 空格:下一页
  • /关键词:搜索
  • q:退出

如果你愿意,可以告诉我:

  • ✅ 你是 Linux / Mac / Docker
  • ✅ 想查 访问异常 / 性能 / 安全 / 接口报错

我可以直接给你针对性命令

0