nginx日志解析

Nginx 的日志默认参数包括访问日志(Access Log)和错误日志(Error Log)。以下是对这些默认参数的详细解析:

1. 访问日志(Access Log)

访问日志记录了每个客户端请求的详细信息,包括请求的来源、时间、请求内容、响应状态码等。

默认访问日志位置

Nginx 默认会将访问日志记录到 /var/log/nginx/access.log

默认访问日志格式

Nginx 默认使用 combined 格式记录访问日志。combined 格式包括以下字段:

  • $remote_addr:客户端的 IP 地址。
  • $remote_user:客户端用户名(如果启用了基本认证)。
  • $time_local:本地时间,格式为 [day/month/year:hour:minute:second zone]
  • $request:请求行,包括请求方法、请求 URI 和协议版本。
  • $status:响应状态码。
  • $body_bytes_sent:发送给客户端的字节数(不包括响应头)。
  • $http_referer:请求的来源页面(Referer)。
  • $http_user_agent:客户端的用户代理(User-Agent)。
配置示例
nginx 复制代码
http {
    # 定义日志格式
    log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent"';

    # 指定访问日志文件路径和使用的日志格式
    access_log /var/log/nginx/access.log combined;
}

2. 错误日志(Error Log)

错误日志记录了 Nginx 运行过程中发生的错误信息,包括启动错误、配置错误和请求处理错误等。

默认错误日志位置

Nginx 默认会将错误日志记录到 /var/log/nginx/error.log

默认错误日志级别

Nginx 默认的日志级别是 error,这意味着只记录 error 级别及以上级别(如 crit, alert, emerg)的日志。可以通过 error_log 指令修改日志级别。

配置示例
nginx 复制代码
http {
    # 指定错误日志文件路径和日志级别
    error_log /var/log/nginx/error.log error;
}

3. 其他常见日志级别

Nginx 支持以下日志级别:

  • debug:调试信息
  • info:普通信息
  • notice:通知信息
  • warn:警告信息
  • error:错误信息(默认)
  • crit:严重情况
  • alert:需要立即处理的情况
  • emerg:系统不可用

4. 完整示例配置

以下是一个完整的 Nginx 配置示例,包括访问日志和错误日志的默认参数配置:

nginx 复制代码
http {
    # 定义访问日志格式
    log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent"';

    # 配置访问日志
    access_log /var/log/nginx/access.log combined;

    # 配置错误日志
    error_log /var/log/nginx/error.log error;

    server {
        listen 80;
        server_name example.com;

        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
        }
    }
}

5. 其他日志配置选项

Nginx 还支持其他一些日志配置选项,如:

  • 缓冲访问日志 :通过 access_log 指令中的 buffer 参数可以缓冲日志记录,提高性能。

    nginx 复制代码
    access_log /var/log/nginx/access.log combined buffer=32k;
  • 条件记录日志 :可以通过配置条件来有选择地记录日志。

    nginx 复制代码
    access_log /var/log/nginx/access.log combined if=$request_time > 1;
相关推荐
deng-c-f13 分钟前
Linux C/C++ 学习日记(29):IO密集型与CPU密集型、CPU的调度与线程切换
linux·学习·线程·cpu·io密集·cpu密集
ximy133540 分钟前
AI服务器工作之整机部件(CPU+内存)
运维·服务器
weixin_4211334142 分钟前
bisheng 的 MCP服务器添加 或 系统集成
运维·服务器
AKAMAI2 小时前
安全风暴的绝地反击 :从告警地狱到智能防护
运维·人工智能·云计算
报错小能手3 小时前
linux学习笔记(43)网络编程——HTTPS (补充)
linux·网络·学习
报错小能手3 小时前
linux学习笔记(45)git详解
linux·笔记·学习
hkNaruto3 小时前
【DevOps】基于Nexus部署内网pypi代理镜像仓库操作手册
运维·devops
ximy13353 小时前
AI服务器工作之线材的接口介绍
运维·服务器
ximy13353 小时前
AI服务器工作之ubuntu系统下的驱动安装
运维·服务器·ubuntu
²º²²এ松3 小时前
蓝牙低功耗(BLE)通信的中心设备/外围设备(连接角色)、主机/从机(时序角色)、客户端/服务器(数据交互角色)的理解
运维·服务器·数据库