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

nginx 日志配置笔记

Nginx 的日志配置非常重要,它可以帮助你记录服务器的访问情况、错误信息等,便于后续的分析和故障排查。Nginx 的日志配置主要包括访问日志(access log)错误日志(error log)

1、访问日志(Access Log)

访问日志记录了客户端对服务器的请求信息,包括请求的 URL、HTTP 状态码、客户端 IP 地址、请求时间等。

配置示例:

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;server {listen 80;server_name example.com;location / {root /var/www/html;index index.html;}}
}

配置解释:

  • log_format main …:定义了一个名为 main 的日志格式。

$remote_addr:客户端 IP 地址。

$remote_user:客户端用户名(如果有)。

$time_local:本地时间。

$request:请求的 URL 和 HTTP 方法。

$status:HTTP 状态码。

$body_bytes_sent:发送给客户端的字节数。

$http_referer:请求的来源页面。

$http_user_agent:客户端的用户代理(浏览器类型)。

$http_x_forwarded_for:如果使用了反向代理,这个变量记录了客户端的真实 IP 地址。

  • access_log /var/log/nginx/access.log main;:指定访问日志的文件路径和使用的日志格式。

2、错误日志(Error Log)

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

配置示例:

error_log /var/log/nginx/error.log warn; 
http {server {listen 80;server_name example.com;location / {root /var/www/html;index index.html;}}
}

配置解释:

  • error_log /var/log/nginx/error.log warn;:指定错误日志的文件路径和日志级别。

日志级别可以是 debug, info, notice, warn, error, crit, alert, emerg。

warn 表示记录警告及以上级别的错误信息。

3、日志轮转(Log Rotation)

日志文件会随着时间的推移变得越来越大,因此需要定期进行日志轮转,以避免日志文件过大。你可以使用系统自带的日志轮转工具(如 logrotate)来管理 Nginx 的日志文件。

示例配置:

/var/log/nginx/*.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 640 nginx admsharedscriptspostrotateif [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat /var/run/nginx.pid`fiendscript
}

解释:

  • daily:每天轮转一次。

  • missingok:如果日志文件不存在,不报错。

  • rotate 7:保留 7 个旧日志文件。

  • compress:压缩旧日志文件。

  • delaycompress:延迟压缩,下次轮转时再压缩。

  • notifempty:如果日志文件为空,不轮转。

  • create 640 nginx adm:创建新日志文件时,指定权限和用户组。

  • sharedscripts:共享脚本,只在第一次轮转时执行一次。

  • postrotate:轮转后执行的脚本。

kill -USR1 cat /var/run/nginx.pid``:发送 USR1 信号给 Nginx,通知其重新打开日志文件。

4、其他日志配置

  • 禁用日志:如果你不希望记录某些请求的日志,可以使用 access_log off; 来禁用访问日志。
location /static/ {access_log off;root /var/www/static;
}
  • 自定义日志格式:你可以根据需要自定义日志格式,记录更多或更少的信息。
log_format custom '$remote_addr - [$time_local] "$request" $status';
access_log /var/log/nginx/custom_access.log custom;

总结

Nginx 的日志配置非常灵活,可以根据实际需求进行调整。通过合理配置访问日志和错误日志,可以帮助你更好地监控和维护 Nginx 服务器。

相关文章:

nginx 日志配置笔记

Nginx 的日志配置非常重要,它可以帮助你记录服务器的访问情况、错误信息等,便于后续的分析和故障排查。Nginx 的日志配置主要包括访问日志(access log)和错误日志(error log)。 1、访问日志(Ac…...

Java中的接口是什么?如何定义接口?

1、Java中的接口是什么?如何定义接口? 在Java中,接口是一种引用类型,它定义了一组方法的契约,但不包含实现。接口定义了方法签名,但不提供方法的实现细节。Java中的接口用于实现多态性和代码的抽象化。 在…...

​8.13TB高清卫星影像更新(WGS84坐标投影)

最近对WGS84版的高清卫星影像数据进行了一次更新,并基于更新区域生成了相应的接图表。 8.13TB高清卫星影像更新 本次数据更新了14820个离线包,共8.13TB大小,主要更新目标区域为中国东南区域。 更新范围接图表一 更新范围接图表二 更新范围…...

【力扣】[Java版] 刷题笔记-21. 合并两个有序链表

题目: 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 从题目和示例可以看出,应该是要循环遍历链表进行比较,然后组成新的链表。 第一种:递归…...

【Bug】RuntimeError: Engine loop has died

目录 报错前置条件报错内容解决方案 报错前置条件 使用vllm启动qwen2.5-32b-instruct模型后发生的报错 GPU是GeForce RTX 4090 Laptop GPU 系统是Windows 11 运行系统是WSL2-Ubuntu22.04 报错内容 INFO 10-22 22:29:31 engine.py:290] Added request chat-993cbe95e73d4a1db…...

Labview写CIP协议

参考资料 读(INT)变量 发送: 6f00 1C00 6d010f00 00000000 0300000000000000 00000000 00000000 0000 0200 0000 0000 B200 0C00 4d 02 91 02 5353 C300 0100 7856 返回: 6f00 1400 6d010f00 00000000 0300000000000000 00000000 00000000 0000 020…...

Redis批量获取缓存的方法

使用multiGet方法 优点:简单易用,适用于获取少量键的场景。 缺点:当获取的键数量较多时,可能会因为网络延迟导致性能下降。此外,如果某个键不存在,对应的返回值会是null,需要额外处理。 其他…...

MySQL配置文件中server-id的作用是什么

作用一: 通过 server-id 可以用来唯一标识主从复制环境中的一个服务器, 作用二: 再进行主从复制的过程中,会传递二进制日志文件,server-id 帮助MySQL确定哪些日志属于哪个服务器,从而确保日志正确地路由到相…...

Docker入门之构建

Docker构建概述 Docker Build 实现了客户端-服务器架构,其中: 客户端:Buildx 是用于运行和管理构建的客户端和用户界面。服务器:BuildKit 是处理构建执行的服务器或构建器。 当您调用构建时,Buildx 客户端会向 Bui…...

StarRocks数据库在SQL语句中解析JSON字符串

StarRocks数据库在SQL语句中解析JSON字符串 -- 使用数据库 use sr_test; -- 删除表 drop table ts_usr; -- 创建表 CREATE TABLE ts_usr ( uid bigint NOT NULL COMMENT "用户id", uname varchar(64) NULL COMMENT "用户名", ujson varchar(1024) NULL CO…...

RabbitMq-队列交换机绑定关系优化为枚举注册

📚目录 📚简介:🚀比较💨通常注册🌈优化后注册 ✍️代码💫自动注册的关键代码 📚简介: 该项目介绍,rabbitMq消息中间件,对队列的注册,交换机的注册&#xff0c…...

施磊C++ | 项目实战 | 手写移植SGI STL二级空间配置器内存池 项目源码

手写移植SGI STL二级空间配置器内存池 项目源码 笔者建议配合这两篇博客进行学习 侯捷 | C | 内存管理 | 学习笔记(二):第二章节 std::allocator-CSDN博客 施磊C | 项目实战 | SGI STL二级空间配置器源码剖析-CSDN博客 文章目录 手写移植SGI STL二级空…...

C++ | Leetcode C++题解之第507题完美数

题目&#xff1a; 题解&#xff1a; class Solution { public:bool checkPerfectNumber(int num) {if (num 1) {return false;}int sum 1;for (int d 2; d * d < num; d) {if (num % d 0) {sum d;if (d * d < num) {sum num / d;}}}return sum num;} };...

Git快速上手

概述 Git 是一个免费且开源的分布式版本控制系统&#xff0c;被广泛用于软件开发中的代码版本控制。通过使用 Git&#xff0c;开发者可以高效地追踪文件的变化历史&#xff0c;并支持多人协作开发。本教程将带你快速了解 Git 的基本概念和操作&#xff0c;帮助你开始使用 Git …...

宝塔如何部署Django项目(前后端分离篇)

一、环境安装 1、安装相关软件 点击软件商店&#xff0c;安装下面软件 一、宝塔部署前端 1、打包Vue项目 打开Vue3项目&#xff0c;输入下面打包命令&#xff0c;对Vue项目进行打包&#xff0c; npm run build 2、部署前端 点击宝塔的网站&#xff0c;在PHP项目里点击添加…...

JavaScript解析JSON对象及JSON字符串

1、问题概述&#xff1f; JavaScript解析JSON对象是常用功能之一。 此处我们要明确JSON对象和JSON字符串的区别&#xff1f;否则会给我们的解析带来困扰。 主要实现如下功能&#xff1a; 1、JavaScript解析JSON字符串和JSON对象? 2、JavaScript解析JSON数组? 3、JavaSc…...

Elasticsearch 构建实时数据可视化应用

Elasticsearch 构建实时数据可视化应用 Elasticsearch 构建实时数据可视化应用一、构建实时数据可视化应用的基本原则1. 数据采集2. 数据处理和清洗3. 数据存储和索引4. 数据可视化展示二、实时数据可视化应用数据存储和检索功能基于Elasticsearch构建实时数据搜索和过滤功能El…...

NVR批量管理软件/平台EasyNVR多个NVR同时管理:H.265与H.264编码优势和差异深度剖析

在数字化安防领域&#xff0c;视频监控系统正逐步成为各行各业不可或缺的一部分。随着技术的不断进步&#xff0c;传统的视频监控系统已经难以满足日益复杂和多变的监控需求。下面我们谈及NVR批量管理软件/平台EasyNVR平台H.265与H.264编码优势及差异。 一、EasyNVR视频汇聚平台…...

C/C++(六)多态

本文将介绍C的另一个基于继承的重要且复杂的机制&#xff0c;多态。 一、多态的概念 多态&#xff0c;就是多种形态&#xff0c;通俗来说就是不同的对象去完成某个行为&#xff0c;会产生不同的状态。 多态严格意义上分为静态多态与动态多态&#xff0c;我们平常说的多态一般…...

汽车及零配件企业海量文件数据如何管

汽车行业特点 汽车行业是工业企业皇冠上的一颗明珠&#xff0c;在国民经济中占据着举足轻重的地位。汽车行业具备技术密集、创新速度快、供应链复杂等特点&#xff0c;具体体现为&#xff1a; 技术密集&#xff1a;汽车行业是技术密集型行业&#xff0c;覆盖机械、电子、软件、…...

FreeRTOS队列实战:从阻塞机制到中断安全通信

1. FreeRTOS队列的核心价值与应用场景 在嵌入式实时系统中&#xff0c;任务间的数据传递就像城市中的快递网络。FreeRTOS队列就是这个网络中的标准化快递箱&#xff0c;它解决了三个关键问题&#xff1a;数据安全传递、任务同步协调和资源竞争管理。想象一下&#xff0c;当你的…...

多模态大模型服务化落地失败率高达73%(Gartner 2024实测数据):你踩中的第4个架构陷阱可能正在拖垮AI产品上线周期

第一章&#xff1a;多模态大模型服务化落地的现实困局与架构反思 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型在实验室中展现出卓越的跨模态理解与生成能力&#xff0c;但一旦进入生产环境&#xff0c;其服务化路径便暴露出显著断层&#xff1a;计算资源高消耗…...

Mipmap实战解析:从纹理闪烁到视觉平滑的渲染优化之路

1. 纹理闪烁的罪魁祸首&#xff1a;当像素与纹素相爱相杀 第一次在开放世界游戏中看到远处山体像癫痫发作般疯狂闪烁时&#xff0c;我差点以为显卡要烧了。这种被称为"纹理闪烁"的现象&#xff0c;本质上是像素与纹素的比例失衡导致的视觉灾难。想象你站在纽约帝国大…...

五大页面置换算法实战对比:从理论到实现的性能优化指南

1. 页面置换算法&#xff1a;内存管理的隐形裁判 当你的电脑同时运行十几个程序却依然流畅时&#xff0c;背后其实是页面置换算法在默默工作。想象一下内存就像一家网红餐厅的有限座位&#xff0c;而进程就是源源不断的顾客。页面置换算法就是那位决定"让哪桌客人暂时离开…...

QEMU 8.0.2源码编译踩坑实录:从依赖缺失到静态编译的完整解决方案

QEMU 8.0.2源码编译实战指南&#xff1a;从环境搭建到静态编译的深度解析 在虚拟化技术领域&#xff0c;QEMU作为开源的硬件模拟器&#xff0c;一直是开发者进行跨平台开发和测试的重要工具。手动编译QEMU源码不仅能获得最新功能&#xff0c;还能针对特定需求进行定制化配置。…...

全文降AI的好处有哪些?推荐3款支持全文处理的降AI工具

全文降AI的好处有哪些&#xff1f;推荐3款支持全文处理的降AI工具 2026年的毕业季&#xff0c;AI检测已经不是"可能查"而是"一定查"。从知网到维普&#xff0c;从万方到大雅&#xff0c;几乎所有主流检测平台都上线了AIGC检测功能。面对这种局面&#xff0…...

CSS 毛玻璃效果:从基础实现到高级应用

1. 毛玻璃效果基础实现 毛玻璃效果&#xff08;Frosted Glass Effect&#xff09;是近年来网页设计中非常流行的一种视觉效果&#xff0c;它能让界面元素呈现出半透明的磨砂质感&#xff0c;就像我们常见的磨砂玻璃一样。这种效果最大的特点就是既能保持背景内容的可见性&#…...

AIAgent算力成本飙升?3步精准定位隐性开销并压降47%的实操指南

第一章&#xff1a;AIAgent算力成本飙升&#xff1f;3步精准定位隐性开销并压降47%的实操指南 2026奇点智能技术大会(https://ml-summit.org) 当AIAgent从原型走向生产&#xff0c;算力账单常以超预期50%的速度攀升——真正吞噬预算的并非大模型推理本身&#xff0c;而是未被…...

Spring Boot 升级后,Hystrix 没了?我找到了这 3 个替代方案

Spring Boot 升级后&#xff0c;Hystrix 没了&#xff1f;我找到了这 3 个替代方案 写在前面 公司项目要从 Spring Boot 2.2.x 升级到 2.7&#xff0c;领导让我负责调研。 拿到手一看&#xff0c;好家伙&#xff0c;Hystrix 停更了&#xff1f;Feign 的 fallback 怎么报错了&am…...

结合自适应锚框机制的YOLOv5优化方法:从原理到实践全解析

摘要 YOLOv5作为目标检测领域的经典算法,其默认的锚框机制在处理多样化数据集时存在局限性。本文提出一种结合自适应锚框机制的YOLOv5优化方法,通过K-means++聚类算法动态计算最优锚框尺寸,并引入锚框质量评估与动态调整策略,显著提升模型在不同尺度目标上的检测精度。实验…...