温馨提示×

如何用grep查nginx日志

小樊
41
2026-09-11 13:28:53
栏目: 编程语言

下面按常见场景给你讲怎么用 grepnginx 日志(默认路径通常是 /var/log/nginx/access.log/var/log/nginx/error.log)。


一、基础用法

grep "关键词" /var/log/nginx/access.log

例如:

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

二、常用查找场景

1️⃣ 查某个 IP 的访问

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

2️⃣ 查某个接口(URL)

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

3️⃣ 查 HTTP 状态码

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

nginx 日志里状态码前后一般有空格,这样更精确

4️⃣ 查错误日志

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

三、grep 常用参数(非常实用)

✅ 忽略大小写

grep -i "error" /var/log/nginx/error.log

✅ 显示行号

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

✅ 反向匹配(不包含)

grep -v "200" /var/log/nginx/access.log

✅ 统计出现次数

grep -c "500" /var/log/nginx/access.log

✅ 多个关键词(或关系)

grep -E "404|500|502" /var/log/nginx/access.log

四、结合时间查日志(常见)

nginx 默认日志格式含时间,例如:

10/Oct/2024:14:22:31

查某段时间

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

查某天

grep "10/Oct/2024" /var/log/nginx/access.log

五、配合其他命令(进阶)

只看最新 100 行

tail -n 100 /var/log/nginx/access.log | grep "500"

实时查看错误

tail -f /var/log/nginx/error.log | grep "error"

统计访问最多的 IP

grep "access" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr

六、小建议(很重要)

  • access.log:看访问、状态码、IP、URL
  • error.log:看 500、502、PHP、权限等问题
  • 生产环境日志很大,建议先用 tail 或时间过滤

如果你愿意,可以把nginx 日志格式你想查的具体问题(如 502、慢请求、某个用户)发给我,我可以帮你写更精确的 grep 命令。

0