当前位置: 首页 > news >正文

Nginx-日志配置

Nginx 配置

访问日志配置

在 Nginx 配置文件中,你可以指定访问日志的格式。Nginx 允许你自定义日志格式,可以使用 log_format 指令来配置它。

默认日志格式配置:
默认情况下,Nginx 会在配置文件中启用访问日志,并使用默认格式:

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    
    access_log /var/log/nginx/access.log main;
    
    # 其他配置...
}
  • log_format:定义日志的格式。上面这个 main 格式会记录访问者的 IP 地址、请求时间、请求方法、状态码、发送的字节数等。
  • access_log:定义访问日志文件的路径和格式。在这个例子中,日志被写入 /var/log/nginx/access.log 文件,并使用 main 格式。
    在 Nginx 配置中,日志格式(通过 log_format 指令定义)使用了多个变量来记录请求的详细信息。以下是常见的 Nginx 日志变量,它们可以在日志格式中使用:
  1. 基本请求信息

    • $remote_addr:客户端的 IP 地址。
    • $remote_port:客户端的端口号。
    • $remote_user:客户端的用户名,如果启用了 HTTP 身份验证。
    • $time_local:本地时间,格式为 [day/month/year:hour:minute:second zone]。
    • $request:请求的完整字符串(例如,GET /index.html HTTP/1.1)。
    • $request_method:请求的方法(例如,GET、POST)。
    • $request_uri:请求的 URI 部分,不包括域名和协议(例如,/index.html)。
    • $status:返回的 HTTP 状态码(例如,200、404)。
    • $body_bytes_sent:返回给客户端的响应体字节数(不包括头部)。
    • $http_referer:HTTP referer 头部,指示请求来自哪个页面。
    • $http_user_agent:HTTP user-agent 头部,指示客户端使用的浏览器或其他客户端类型。
    • $http_x_forwarded_for:通过代理服务器转发的客户端 IP 地址(如果存在)。
  2. 时间和延迟信息

    • $time_iso8601:ISO 8601 格式的时间(例如,2025-03-06T08:57:10+00:00)。
    • $msec:请求开始时的时间戳(以秒为单位的浮动值)。
    • $request_time:请求处理时间(单位为秒)。
    • $upstream_response_time:上游服务器响应的时间(如果使用代理,显示该时间)。
    • $pipe:如果请求被管道化处理,返回 |,否则返回 -。
  3. 响应和数据

    • $status:HTTP 状态码(例如,200、301、404)。
    • $bytes_sent:发送到客户端的字节数(包括响应头部和主体)。
    • $sent_http_*:指示发送给客户端的特定响应头部。
    • 例如,$sent_http_content_type 表示返回的 Content-Type 响应头。
  4. 请求头信息

    • $http_*:客户端请求的 HTTP 头部信息,使用 http_ 前缀。常见的如:
    • $http_user_agent:客户端浏览器的用户代理字符串。
    • $http_referer:请求来源的 URL。
    • $http_x_forwarded_for:代理服务器转发的客户端 IP。
    • $http_cookie:请求中携带的 Cookie 信息。
  5. 服务器信息

    • $server_addr:服务器的 IP 地址(如果有多个网络接口)。
    • $server_name:当前请求匹配的服务器名称。
    • $server_port:服务器的端口号。
    • $hostname:服务器的主机名。
  6. 上游服务器信息
    当请求通过代理或反向代理时,以下变量会记录上游服务器的相关信息:

    • $upstream_addr:上游服务器的地址。
    • $upstream_cache_status:缓存状态(如 MISS、HIT)。
    • $upstream_status:上游服务器的响应状态码。
  7. 其他有用的变量

    • $query_string:请求的查询字符串(如果有的话)。
    • $ssl_cipher:SSL 加密套件(如果请求是 HTTPS)。
    • $ssl_protocol:SSL 协议版本(如果请求是 HTTPS)。
    • $connection:连接的唯一 ID。
    • $connection_requests:连接中处理的请求数量。
      示例日志格式配置:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" '
                  '$request_time $upstream_response_time';

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

在这个示例中,log_format 使用了多个变量来记录每个请求的详细信息,包括客户端 IP 地址、请求时间、状态码、请求时间等。

http://www.dtcms.com/a/111763.html

相关文章:

  • 【家政平台开发(14)】家政平台PC前端(Element plus)开发指南:从集成到组件应用
  • 【备考高项】附录:商标法(2013年修正 73条全)
  • QEMU源码全解析 —— 块设备虚拟化(14)
  • 深度学习处理文本(10)
  • 解决GraalVM Native Maven Plugin错误:JAVA_HOME未指向GraalVM Distribution
  • 【家政平台开发(15)】解锁Spring Boot:家政平台后端开发全攻略
  • 深度学习处理文本(12)
  • Linux的 /etc/sysctl.conf 笔记250404
  • AI大模型:(二)1.3 linux本地部署通义万相2.1+deepseek视频生成
  • ARM Cortex-A7 处理器支持的汇编指令集全面总结
  • 【Cursor】打开Vscode设置
  • 【nacos安装指南】
  • 关于termux运行pc交叉编译的aarch64 elf的问题
  • Leetcode hot100(day 5)
  • 【学Rust写CAD】30 Alpha256结构体补充方法(alpha256.rs)
  • 人工智能在前端开发中的应用探索
  • php8 ?-> nullsafe 操作符 使用教程
  • YOLO目标检测系列
  • 指令补充+样式绑定+计算属性+监听器
  • 鸿蒙 —— 系统图标大全
  • NLP高频面试题(三十六)——深入理解思维链(Chain-of-Thought)提示方法
  • Obsidian按下三个横线不能出现文档属性
  • 鸿蒙 —— 关系型数据库
  • 本节课课堂总结
  • Linux系统编程:进程管理、内存对比与树莓派应用
  • 【AI学习】MCP的简单快速理解
  • 解决backtrader框架下日志ValueError: I/O operation on closed file.报错(jupyternotebook)
  • el-table固定表头,动态计算高度
  • 基础IO(linux)
  • 公司论坛数据构建情感标注数据集思考