全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

nginx日志配置

Nginx 日志记录服务运行状态和访问信息,是运维排查的重要工具。

访问日志

access_log 指令

nginx
access_log /var/log/nginx/access.log;

自定义日志格式

nginx
http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent"';
    
    access_log /var/log/nginx/access.log main;
}

常用日志变量

变量说明
$remote_addr客户端 IP
$time_local请求时间
$request请求行
$status响应状态码
$body_bytes_sent发送字节数
$request_time请求处理时间
$http_referer来源 URL
$http_user_agent客户端标识

错误日志

error_log 指令

nginx
error_log /var/log/nginx/error.log warn;

日志级别

级别说明
debug调试信息
info一般信息
notice重要提示
warn警告
error错误
crit严重错误
alert需立即处理
emerg紧急状态

分层级配置

在不同配置段分别设置日志:

nginx
http {
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log warn;
    
    server {
        # 覆盖全局日志
        access_log /var/log/nginx/site.access.log main;
        error_log /var/log/nginx/site.error.log error;
    }
}

日志缓冲

nginx
access_log /var/log/nginx/access.log main buffer=32k flush=5s;

关闭日志

nginx
location /health {
    access_log off;
    log_not_found off;
}

注意事项

  • 子配置段继承父配置段日志,如需覆盖需重新声明
  • buffer 提升性能但崩溃时会丢失未刷盘数据
  • 生产环境 error_log 建议 error 或 warn 级别

条件日志

nginx
map $status $should_log {
    ~^[23]  0;
    default 1;
}

access_log /var/log/nginx/error_only.log main if=$should_log;

要点总结

  • access_log 配置访问日志,error_log 配置错误日志
  • log_format 自定义日志格式,使用变量提取字段
  • error_log 支持 8 个级别,生产建议 warn 或 error
  • buffer 参数缓冲日志写入,提升性能
  • 子配置段继承父配置段日志,可覆盖或关闭

📝 发现内容有误?点击此处直接编辑

← 上一篇 nginx变量使用
下一篇 → nginx核心配置文件结构
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库