温馨提示×

如何搜索debian nginx日志

小樊
54
2026-09-01 09:15:20
栏目: 智能运维

在 Debian 系统上,Nginx 的日志通常位于 /var/log/nginx/ 目录下。常见日志文件包括:

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

如果你的站点使用了虚拟主机(server block),可能还有类似:

  • /var/log/nginx/example.com.access.log
  • /var/log/nginx/example.com.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. 查看完整日志

less /var/log/nginx/access.log

在 less 中:

  • /关键词 搜索
  • q 退出

二、使用 grep 搜索日志

1. 搜索特定 IP

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

2. 搜索某个 URL

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

3. 搜索 404 错误

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

4. 搜索错误日志中的关键字

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

5. 多条件搜索

grep "POST" /var/log/nginx/access.log | grep "500"

三、按时间范围搜索

1. 搜索某一天的日志(默认格式)

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

2. 最近 1 小时的日志

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

四、使用 journalctl(systemd 方式)

如果你用的是 systemd 的 Nginx:

journalctl -u nginx

实时查看:

journalctl -u nginx -f

按时间:

journalctl -u nginx --since "2024-10-10 10:00" --until "2024-10-10 12:00"

五、日志被切割(logrotate)

Debian 默认会启用 logrotate,旧日志可能变成:

access.log.1
access.log.2.gz

查看压缩日志:

zcat /var/log/nginx/access.log.2.gz | grep "error"

六、推荐组合命令示例

查看访问量最高的 IP

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

查看访问最多的 URL

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

如果你有具体想查的内容(如某用户、某接口、某错误码、某时间段),可以告诉我,我可以给你更精确的命令。

0 踩