当前位置: 首页 > 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 服务器。

http://www.lryc.cn/news/468402.html

相关文章:

  • Java中的接口是什么?如何定义接口?
  • ​8.13TB高清卫星影像更新(WGS84坐标投影)
  • 【力扣】[Java版] 刷题笔记-21. 合并两个有序链表
  • 【Bug】RuntimeError: Engine loop has died
  • Labview写CIP协议
  • Redis批量获取缓存的方法
  • MySQL配置文件中server-id的作用是什么
  • Docker入门之构建
  • StarRocks数据库在SQL语句中解析JSON字符串
  • RabbitMq-队列交换机绑定关系优化为枚举注册
  • 施磊C++ | 项目实战 | 手写移植SGI STL二级空间配置器内存池 项目源码
  • C++ | Leetcode C++题解之第507题完美数
  • Git快速上手
  • 宝塔如何部署Django项目(前后端分离篇)
  • JavaScript解析JSON对象及JSON字符串
  • Elasticsearch 构建实时数据可视化应用
  • NVR批量管理软件/平台EasyNVR多个NVR同时管理:H.265与H.264编码优势和差异深度剖析
  • C/C++(六)多态
  • 汽车及零配件企业海量文件数据如何管
  • 【AI学习】Mamba学习(十二):深入理解S4模型
  • linux入门之必掌握知识点
  • 【Web.路由]——路由原理
  • Spring Boot技术在中小企业设备管理中的应用
  • Lua表(Table)
  • 51单片机应用开发(进阶)---外部中断(按键+数码管显示0-F)
  • 怎么区分主谓宾I love you与主系表I am fine? 去掉宾语看句子完整性 主系表结构则侧重于描述主语的状态、特征或性质
  • 私域流量运营的误区
  • VirtualBox虚拟机桥接模式固定ip详解
  • 面试问题基础记录24/10/24
  • 中国区 Microsoft365主页链接请您参考: