首页主机资讯Ubuntu nginx日志级别设置指南

Ubuntu nginx日志级别设置指南

时间2025-11-28 09:22:03发布访客分类主机资讯浏览1358
导读: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 不支持级别,仅控制是否记录与记录格式。

二 配置步骤

    1. 编辑配置文件
    • 全局或 http 块(影响整体):sudo nano /etc/nginx/nginx.conf
    • 站点或 location 块(更细粒度):sudo nano /etc/nginx/sites-available/your-site.conf
    1. 设置错误日志级别(示例)
    • 全局:
      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;
      
          ...
      }
          
      
    1. 关闭访问日志(如不需要)
    access_log off;
    
    
    1. 检查语法并生效
    sudo nginx -t
    sudo systemctl reload nginx   # 或 restart
    
    1. 验证
    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
Linux GIMP如何进行滤镜效果制作 nginx错误日志中常见的问题及解决方法

游客 回复需填写必要信息