立即前往

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
查看全部活动
热门活动
  • 智算采购季 热销S6云服务器2核4G限时88元/年起,部分主机可加赠对象存储组合包!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 一键部署Llama3大模型学习机 0代码一键部署,预装最新主流大模型Llama3与StableDiffusion
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 产品能力
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
    • 关系数据库SQL Server版
    • 企业主机安全
    • 云防火墙
    • CDN加速
    • 物理机
    • GPU云主机
    • 天翼云电脑(政企版)
    • 天翼云电脑(公众版)
    • 云主机备份
    • 弹性云主机
      搜索发现
      关系数据库SQL Server版企业主机安全云防火墙CDN加速物理机GPU云主机天翼云电脑(政企版)天翼云电脑(公众版)云主机备份弹性云主机
    • 文档
    • 控制中心
    • 备案
    • 管理中心

    nginx配置系列(三)日志配置

    首页 知识中心 存储 文章详情页

    nginx配置系列(三)日志配置

    2024-07-01 01:33:26 阅读次数:140

    nginx,缓存

    ngx_http_log_module 模块

    ngx_http_log_module模块按指定的格式记录访问日志。请求在处理结束时,会按请求路径的配置上下文记访问日志,通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息。你也可以记录错误日志,通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。

    配置 access_log 来记录访问日志

    访问日志主要记录客户端的请求。客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。当然具体要记录哪些信息,你可以通过log_format指令来定义。

    语法:

    access_log path [``format` `[buffer=size] [``gzip``[=level]] [flush=``time``] [``if``=condition]]; ``# 设置访问日志``access_log off; ``# 关闭访问日志
    
    • path 指定日志的存放位置。
    • format 指定日志的格式。默认使用预定义的combined。
    • buffer 用来指定日志写入时的缓存大小。默认是64k。
    • gzip 日志写入前先进行压缩。压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢。默认是1。
    • flush 设置缓存的有效时间。如果超过flush指定的时间,缓存中的内容将被清空。
    • if 条件判断。如果指定的条件计算为0或空字符串,那么该请求不会写入日志。

    还有一个特殊的值off。如果指定了该值,当前作用域下的所有的请求日志都被关闭。

    配置作用域

    可以配置 access_log 指令的作用域分别有http,server,location,limit_except。也就是说,在这几个作用域外使用该指令,Nginx会报错。

    以上是 access_log 指令的基本语法和参数的含义。下面我们看一几个例子加深一下理解。

    基本用法

    access_log ``/home/wwwlogs/nginx-access``.log
    

    该例子指定日志的写入路径为/home/wwwlogs/nginx-access.log,日志格式使用默认的combined。

    access_log ``/home/wwwlogs/nginx-access``.log buffer=32k ``gzip` `flush=1m
    

    该例子指定日志的写入路径为/home/wwwlogs/nginx-access.log,日志格式使用默认的combined,指定日志的缓存大小为32k,日志写入前启用gzip进行压缩,压缩比使用默认值1,缓存数据有效时间为1分钟。

    使用 log_format 自定义日志格式

    Nginx预定义了名为combined日志格式,如果没有明确指定日志格式默认使用该格式:

    log_format combined ``'$remote_addr - $remote_user [$time_local] '``          ``'"$request" $status $body_bytes_sent '``          ``'"$http_referer" "$http_user_agent"'``;
    

    如果不想使用Nginx预定义的格式,可以通过log_format指令来自定义。

    语法

    log_format name [escape=default|json] string ...;
    
    • name 格式的名称。在 access_log 指令中引用。
    • escape 设置变量中的字符编码方式是json还是default,默认是default。
    • string 要定义的日志格式内容。该参数可以有多个。参数中可以使用Nginx变量。

    下面是 log_format 指令中常用的一些变量:

    $remote_addr 客户端的IP地址(代理服务器,显示代理服务器的ip)

    $remote_user 记录远程客户端的用户名称,针对启用了用户认证的请求,通常情况下为“-”

    $time_local 记录访问时间和时区,如"24/May/2017:18:31:27 +0800"

    $request 记录请求的url以及请求方法

    $status 响应状态码 例如:200成功、404页面找不到等......

    $bytes_sent 发送给客户端的总字节数

    $body_bytes_sent 给客户端发送的主体内容字节数,不包括响应头的大小

    $http_user_agent 客户端浏览器信息

    $http_x_forwarded_for 可以记录客户端IP,通过代理服务器来记录客户端的IP地址。当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置。

    $http_referer 记录用户是从哪个链接访问过来的

    $time_iso8601 标准格式的本地时间,形如“2017-05-24T18:31:27+08:00”

    $msec 日志写入时间,单位为秒,精度是毫秒

    $request_length 请求长度(包括请求行,请求头和请求体)

    $request_time 请求处理时长,单位为秒,精度为毫秒,从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端进行日志写入为止

    下面演示一下自定义日志格式的使用:

    access_log ``/home/wwwlogs/nginx-access``.log main``log_format main ``'$remote_addr - $remote_user [$time_local] "$request" '``         ``'$status $body_bytes_sent "$http_referer" '``         ``'"$http_user_agent" "$http_x_forwarded_for"'``;
    

    使用 log_format 指令定义了一个main的格式,并在access_log指令中引用了它。假如客户端有发起请求:

    ,注意,如果你要测试的话,请把换成对应你自己的域名进行访问。看一下我截取的一个请求的日志记录:

    111.231.138.248 - - [20``/Feb/2018``:12:12:14 +0800] ``"GET / HTTP/1.1"` `200 190 ``"-"` `"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36"` `"-"
    

    我们看到最终的日志记录中$remote_user、$http_referer、$http_x_forwarded_for都对应了一个-,这是因为这几个变量为空。

    配置 error_log 来记录错误日志

    错误日志在Nginx中是通过 error_log 指令实现的。该指令记录服务器和请求处理过程中的错误信息。

    语法

    配置错误日志文件的路径和日志级别。

    error_log ``file` `[level];``Default:  ``error_log logs``/error``.log error;
    

    第一个参数指定日志的写入路径。

    第二个参数指定日志的级别。level可以是debug, info, notice, warn, error, crit, alert,emerg 中的任意值。可以看到其取值范围是按紧急程度从低到高排列的。只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error。

    基本用法

    error_log ``/home/wwwlogs/nginx-error``.log crit;
    

    它可以配置在:main, http, mail, stream, server, location 作用域。

    例子中指定了错误日志的路径为:/home/wwwlogs/nginx-error.log,日志级别使用的是crit。

    open_log_file_cache

    每一条日志记录的写入都是先打开文件再写入记录,然后关闭日志文件。如果你的日志文件路径中使用了变量,如 access_log /home/wwwlogs/$host/nginx-access.log,为了提高性能,可以使用 open_log_file_cache 指令设置日志文件描述符的缓存。当然了,即使你在路径中使用了变量,你也可以选择不用配置 open_log_file_cache。

    语法

    open_log_file_cache max=N [inactive=``time``] [min_uses=N] [valid=``time``];
    

    max 设置缓存中最多容纳的文件描述符数量,如果被占满,采用LRU算法将描述符关闭。

    inactive 设置缓存存活时间,默认是10s。

    min_uses 在inactive时间段内,日志文件最少使用几次,该日志文件描述符记入缓存,默认是1次。

    valid:设置多久对日志文件名进行检查,看是否发生变化,默认是60s。

    off:不使用缓存。默认为off。

    基本用法

    open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
    

    它可以配置在http、server、location作用域中。

    在上面的例子中,设置缓存最多缓存1000个日志文件描述符,20s内如果缓存中的日志文件描述符至少被被访问2次,才不会被缓存关闭。每隔1分钟检查缓存中的文件描述符的文件名是否还存在。

    尾声

    在Nginx中我们可以通过 access_log 和 error_log 指令配置访问日志和错误日志,通过 log_format 我们可以自定义日志格式。如果日志文件路径中使用了变量,我们可以通过open_log_file_cache指令来设置缓存,提升性能。

    另外,在 access_log 和 log_format 中使用了很多变量,这些变量并没有一 一列举出来。

    版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_15070902/5265502,作者:炒香菇的书呆子,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

    上一篇:todoList存储-62

    下一篇:利用Xp_Cmdshell取得服务器的管理权,很可怕的SQL注入

    相关文章

    2025-04-23 08:18:27

    nginx结合前后端分离项目springboot+vue的配置

    项目采用的是前后端分离springboot+vue,通过nginx监听,转发到对应的前端页面或者后台接口调用

    2025-04-23 08:18:27
    nginx , springboot , vue , 分离 , 配置
    2025-04-22 09:40:08

    【ETL工具】Kettle 调优 (使用阻塞组件的同时数据量大)

    【ETL工具】Kettle 调优 (使用阻塞组件的同时数据量大)

    2025-04-22 09:40:08
    组件 , 缓存 , 队列
    2025-04-18 07:11:32

    编译运行,读取日志配置看图

    编译运行,读取日志配置看图

    2025-04-18 07:11:32
    nginx , 编译 , 配置
    2025-04-18 07:10:38

    linux常用命令-yum命令详解(超详细)

    yum 命令是一种在基于 RPM 包管理系统的 Linux 发行版中用于包管理的命令行工具。它提供了方便的方式来安装、更新、删除和搜索软件包,以及管理软件包仓库和依赖关系。

    2025-04-18 07:10:38
    nginx , yum , 仓库 , 命令 , 安装 , 软件包 , 选项
    2025-04-18 07:10:38

    学习 SSR(Server-Side Rendering)的心得和体会

    在现代的前端开发中,性能优化和用户体验始终是核心考量之一。而在众多优化策略中,服务器端渲染(Server-Side Rendering,简称SSR)是一个重要的概念。

    2025-04-18 07:10:38
    优化 , 客户端 , 服务器 , 服务器端 , 渲染 , 缓存
    2025-04-18 07:09:19

    深入理解Spring中的Bean循环依赖与解决机制

    Bean循环依赖是指两个或多个Bean之间相互依赖,形成依赖闭环的情况。例如,Bean A依赖Bean B,而Bean B又依赖Bean A。这种情况下,如果没有特殊处理,容器将无法正确初始化这些Bean,从而导致应用启动失败。

    2025-04-18 07:09:19
    Bean , Spring , 依赖 , 初始化 , 循环 , 缓存 , 解决
    2025-04-15 09:24:56

    Redis多级缓存指南:从前端到后端全方位优化!

    在现代互联网应用中,高性能和高可用性是两个非常重要的目标。为了达到这些目标,我们通常会使用缓存技术,其中 Redis 是一种非常受欢迎的缓存中间件。

    2025-04-15 09:24:56
    内存 , 存储 , 数据 , 服务器 , 浏览器 , 磁盘 , 缓存
    2025-04-15 09:20:07

    Redis经典问题:缓存击穿

    缓存击穿是指在高并发场景下,同一时刻有大量用户请求同一条数据。当这条数据在缓存中不存在时(即缓存未命中),所有请求同时去查询数据库。这种情况下,数据库会瞬间受到大量请求的压力,导致性能瓶颈或系统崩溃。

    2025-04-15 09:20:07
    互斥 , 数据 , 数据库 , 示例 , 缓存 , 过期
    2025-04-15 09:20:07

    Redis经典问题:数据不一致

    数据不一致是指缓存中的数据和数据库中的数据存在差异。这种问题通常出现在缓存系统与数据库之间的同步过程中。当缓存中的数据与数据库中的数据不匹配时,会导致应用程序读取错误或过时的数据,从而影响应用的稳定性和性能。

    2025-04-15 09:20:07
    一致性 , 写入 , 数据 , 数据库 , 确保 , 缓存
    2025-04-15 09:19:55

    Redis经典问题:BigKey问题

    在Redis中,每个Key都会对应一个Value,而这个Value的大小会影响Redis的性能表现。当我们存储的Value特别大时,就会出现BigKey问题。

    2025-04-15 09:19:55
    Key , Redis , 数据结构 , 系统 , 缓存 , 问题
    查看更多
    推荐标签

    作者介绍

    天翼云小翼
    天翼云用户

    文章

    32777

    阅读量

    4802559

    查看更多

    最新文章

    【ETL工具】Kettle 调优 (使用阻塞组件的同时数据量大)

    2025-04-22 09:40:08

    Redis多级缓存指南:从前端到后端全方位优化!

    2025-04-15 09:24:56

    Redis经典问题:缓存击穿

    2025-04-15 09:20:07

    Redis经典问题:数据不一致

    2025-04-15 09:20:07

    Redis经典问题:BigKey问题

    2025-04-15 09:19:55

    thinkphp使用文件缓存的实例

    2025-04-01 10:28:25

    查看更多

    热门文章

    leetcode数据结构-LRU

    2023-03-02 10:21:35

    精华推荐 | 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的存储系统的实现原理和持久化机制

    2023-02-24 10:12:47

    elasticsearch预加载数据到文件系统缓存

    2024-09-25 10:13:57

    jedis工具类

    2023-02-16 08:14:03

    ajax get缓存问题+ajax post请求

    2023-06-07 07:32:36

    nginx反向代理(2)

    2024-07-01 01:32:03

    查看更多

    热门标签

    存储 缓存 内存 数据库 数据 redis mysql 服务器 数据恢复 Redis linux java sql MySQL 数据结构
    查看更多

    相关产品

    弹性云主机

    随时自助获取、弹性伸缩的云服务器资源

    天翼云电脑(公众版)

    便捷、安全、高效的云电脑服务

    对象存储

    高品质、低成本的云上存储服务

    云硬盘

    为云上计算资源提供持久性块存储

    查看更多

    随机文章

    【leetcode】哈希表+双向链表 - LRU的缓存机制

    MySQL/MariaDB的查询缓存

    redis缓存问题

    在浏览器输入一个url后按回车,会发生什么?

    对话AI-Redis原理相关

    一文入门缓存技术

    • 7*24小时售后
    • 无忧退款
    • 免费备案
    • 专家服务
    售前咨询热线
    400-810-9889转1
    关注天翼云
    • 权益商城
    • 天翼云APP
    • 天翼云微信公众号
    服务与支持
    • 备案中心
    • 售前咨询
    • 智能客服
    • 自助服务
    • 工单管理
    • 客户公告
    • 涉诈举报
    账户管理
    • 管理中心
    • 订单管理
    • 余额管理
    • 发票管理
    • 充值汇款
    • 续费管理
    快速入口
    • 权益商城
    • 文档中心
    • 最新活动
    • 免费试用
    • 信任中心
    • 天翼云学堂
    云网生态
    • 甄选商城
    • 渠道合作
    • 云市场合作
    了解天翼云
    • 关于天翼云
    • 天翼云APP
    • 服务案例
    • 新闻资讯
    • 联系我们
    热门产品
    • 云电脑
    • 弹性云主机
    • 云电脑政企版
    • 天翼云手机
    • 云数据库
    • 对象存储
    • 云硬盘
    • Web应用防火墙
    • 服务器安全卫士
    • CDN加速
    热门推荐
    • 云服务备份
    • 边缘安全加速平台
    • 全站加速
    • 安全加速
    • 云服务器
    • 云主机
    • 智能边缘云
    • 应用编排服务
    • 微服务引擎
    • 共享流量包
    更多推荐
    • web应用防火墙
    • 密钥管理
    • 等保咨询
    • 安全专区
    • 应用运维管理
    • 云日志服务
    • 文档数据库服务
    • 云搜索服务
    • 数据湖探索
    • 数据仓库服务
    友情链接
    • 中国电信集团
    • 189邮箱
    • 天翼企业云盘
    • 天翼云盘
    ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
    公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
    • 用户协议
    • 隐私政策
    • 个人信息保护
    • 法律声明
    备案 京公网安备11010802043424号 京ICP备 2021034386号