Ubuntu上Nginx日志如何查看
导读:Ubuntu 上 Nginx 日志查看与排查指南 一 日志位置与类型 默认日志目录:/var/log/nginx/ 常见日志文件: 访问日志:/var/log/nginx/access.log 错误日志:/var/log/nginx/e...
Ubuntu 上 Nginx 日志查看与排查指南
一 日志位置与类型
- 默认日志目录:/var/log/nginx/
- 常见日志文件:
- 访问日志:/var/log/nginx/access.log
- 错误日志:/var/log/nginx/error.log
- 配置指令位置:主配置 /etc/nginx/nginx.conf,站点配置 /etc/nginx/sites-enabled/(日志路径由 access_log 与 error_log 指令定义,若未显式设置,通常写入上述默认文件)
二 快速查看与检索
- 实时查看访问日志与错误日志
- 命令:
sudo tail -f /var/log/nginx/access.log、sudo tail -f /var/log/nginx/error.log
- 命令:
- 按时间过滤
- 示例:
journalctl -u nginx --since "2025-12-09 00:00:00" --until "2025-12-09 12:00:00"
- 示例:
- 按级别过滤
- 示例:
journalctl -u nginx -p err(仅显示错误级别)
- 示例:
- 关键字检索
- 示例:
grep "404" /var/log/nginx/access.log、grep -i "permission denied" /var/log/nginx/error.log
- 示例:
- 说明
- 使用
tail -f可实时跟踪新增日志 - 使用
journalctl -u nginx可查看由 systemd 管理的 Nginx 服务日志(适合排查启动失败、重启等)
- 使用
三 多站点与自定义日志路径
- 多站点可按虚拟主机拆分日志,便于定位问题
- 示例配置:
http { access_log /var/log/nginx/access.log; server { listen 80; server_name example.com; access_log /var/log/nginx/example.access.log; ... } }
- 示例配置:
- 变更后检查并重载
- 检查语法:
sudo nginx -t - 重载配置:
sudo systemctl reload nginx
- 检查语法:
- 提示
- 若未为某 server 指定
access_log,将沿用 http 层级或默认路径
- 若未为某 server 指定
四 日志分析与可视化
- 高频访问与状态码统计
- Top 10 IP:
awk '{ print $1} ' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10 - Top 20 URL:
awk '{ print $7} ' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20 - 状态码分布:
awk '{ print $9} ' /var/log/nginx/access.log | sort | uniq -c | sort -nr
- Top 10 IP:
- 使用 GoAccess 生成可视化报告
- 安装:
sudo apt install -y goaccess - 报告:
goaccess /var/log/nginx/access.log --log-format=COMBINED -o /var/www/html/report.html - 实时 HTML:
goaccess /var/log/nginx/access.log --log-format=COMBINED --real-time-html --port=7890 -o /var/www/html/realtime.html
- 安装:
- 其他工具
- 交互式查看:
sudo apt install -y lnav & & lnav /var/log/nginx/ - 实时监控:
sudo apt install -y ngxtop
- 交互式查看:
五 日志轮转与常见问题排查
- 日志轮转
- 配置目录:/etc/logrotate.d/nginx
- 作用:按日/周轮转、压缩、保留历史,避免单个日志过大
- 排查清单
- 配置语法:
sudo nginx -t - 服务状态:
sudo systemctl status nginx - 端口占用:
sudo ss -tulnp | grep ':80\|:443' - 错误线索:优先查看 /var/log/nginx/error.log 与
journalctl -u nginx的时间点与错误级别
- 配置语法:
- 相关组件日志
- PHP-FPM:常见路径 /var/log/php7.x-fpm.log 或 /var/log/php-fpm/error.log(版本与发行版不同可能有所差异)
- MySQL/MariaDB:/var/log/mysql/error.log
- 系统日志:/var/log/syslog(可用于关联系统层面的事件)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上Nginx日志如何查看
本文地址: https://pptw.com/jishu/766953.html
