Ubuntu nginx日志级别设置指南
导读:Ubuntu 上 Nginx 日志级别设置指南 一 核心概念与级别 Nginx 的日志分为两类: 访问日志 access_log:记录每一次 HTTP 请求的概况,使用 log_format 自定义格式。 错误日志 error_log:...
Ubuntu 上 Nginx 日志级别设置指南
一 核心概念与级别
- Nginx 的日志分为两类:
- 访问日志 access_log:记录每一次 HTTP 请求的概况,使用 log_format 自定义格式。
- 错误日志 error_log:记录运行期错误与告警,支持按严重性设置日志级别。
- error_log 的级别(从低到高)为:debug、info、notice、warn、error、crit、alert、emerg。指定某一级别时,会记录该级别及其以上所有级别。未显式设置时,常见默认值为 error。
- 作用域与覆盖:error_log 可在 main(全局)/http/server/location 上下文中配置,子上下文会覆盖上级上下文;access_log 不支持级别,仅控制是否记录与记录格式。
二 配置步骤
-
- 编辑配置文件
- 全局或 http 块(影响整体):
sudo nano /etc/nginx/nginx.conf - 站点或 location 块(更细粒度):
sudo nano /etc/nginx/sites-available/your-site.conf
-
- 设置错误日志级别(示例)
- 全局:
error_log /var/log/nginx/error.log warn; - 某站点仅记录警告及以上:
server { listen 80; server_name example.com; error_log /var/log/nginx/example.error.log warn; access_log /var/log/nginx/example.access.log; ... }
-
- 关闭访问日志(如不需要)
access_log off; -
- 检查语法并生效
sudo nginx -t sudo systemctl reload nginx # 或 restart -
- 验证
tail -f /var/log/nginx/error.log
以上路径、指令与生效方式适用于 Ubuntu 上的常见 Nginx 部署。
三 常见场景与示例
- 开发/排障临时开启调试(仅在需要的上下文)
server { listen 80; server_name dev.example.com; error_log /var/log/nginx/dev.error.log debug; access_log /var/log/nginx/dev.access.log; ... } - 按状态码拆分访问日志(仅记录 4xx/5xx)
map $status $loggable { ~^[45] 1; default 0; } access_log /var/log/nginx/error_access.log combined if=$loggable; - 彻底屏蔽错误日志(不建议生产)
error_log /dev/null crit; - 仅关闭访问日志
access_log off;
上述做法利用了 error_log 的级别与上下文覆盖、access_log 的开关与条件日志能力。
四 日志轮转与磁盘保护
- Ubuntu 通常自带 logrotate 的 Nginx 配置:/etc/logrotate.d/nginx。常见策略为按天轮转并保留 52 份,轮转后通过向 Nginx 主进程发送 USR1 信号让其重新打开日志文件:
/var/log/nginx/*.log { daily rotate 52 compress missingok notifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } - 也可改为按大小轮转(如每 100MB 轮转,保留 14 份):
/var/log/nginx/*.log { size 100M rotate 14 compress delaycompress missingok notifempty create 0640 www-data adm sharedscripts postrotate [ -f /var/run/nginx.pid ] & & kill -USR1 `cat /var/run/nginx.pid` endscript }
以上配置确保日志不会无限增长,并在轮转后继续写入新文件。
五 实用命令与最佳实践
- 实时查看与过滤
tail -f /var/log/nginx/access.log tail -f /var/log/nginx/error.log | grep "404" - 变更流程与风险控制
- 修改前备份配置;变更后用
sudo nginx -t校验;优先使用reload而非restart减少中断;仅在必要时开启 debug,生产环境建议使用 warn/error 并结合条件日志降低噪声与 I/O。
- 修改前备份配置;变更后用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu nginx日志级别设置指南
本文地址: https://pptw.com/jishu/758727.html
