nginx 日志功能详解
nginx 日志功能
在 nginx 中有两种日志:
- access_log:访问日志,通过访问日志可以获取用户的IP、请求处理的时间、浏览器信息等
- error_log:错误日志,记录了访问出错的信息,可以用于定位错误的原因
设置 access_log
访问日志主要用于记录客户端的请求。客户端向 nginx 服务器发起的每一次请求都会被记录到 access_log 中。
包含请求 IP、时间、访问 url 等等,当然访问日志中具体记录哪些日志信息我们可以通过 log_format 设置。
access_log 指令语法
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志
access_log off; # 关闭访问日志
- path 表示指定日志存放位置
- format 表示日志格式即日志中记录的内容
- buffer 用于指定日志写入时的缓存大小,默认 64k
- gzip 日志写入前先压缩。压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢,默认1
- flush 设置缓存的时间,如果超过flush指定的时间,缓存中的内容将被清空
- if 判断条件,如果指定的条件计算为0或空字符串,那么该请求不会被写入日志
设置 buffer 的目的,是为了避免高频对磁盘进行读写操作,即暂时先不将日志写入磁盘,而是存入内存中,等达到了设置缓存大小之后再一次性写入。
注意 flush 指令是和 buffer 一起使用的,即指定 buffer=size 之后,如果超过 flush 指令设定的时间仍然未达到缓存区大小,则也会被写入到磁盘,没有 buffer 而只有 flush 则会报错。
access_log 配置示例
access_log /var/logs/nginx-access.log
上面的例子指定日志的写入路径为 /var/logs/nginx-access.log 日志格式默认使用 combined:
access_log /var/logs/nginx-access.log buffer=32k gzip flush=1m
该例子指定日志写入路径为 /var/logs/nginx-access.log 日志格式默认使用 combined ,日志的缓存大小为 32k,日志写入前启用 gzip 压缩,压缩比值 1,缓存数据的有效时间为 1 分钟。
需要注意,在 nginx.conf 文件中 access_log 默认是关闭的:

去掉注释:

access_log 日志查看
通过 cat 命令查看日志:

它的格式为:

127.0.0.1 - - [21/Jul/2020:21:10:27 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" "-"
1. $remote_addr(客户端(用户) IP地址) 127.0.0.1
2. $remote_user(需要在基于认证规则的时候,才有) ''
3. $time_local(访问时间) 21/Jul/2020:21:10:27 +0800
4. $request(请求的 url 地址) "GET / HTTP/1.1"
5. $body_bytes_sent(nginx返回给客户端的响应体的字节数,即不含响应头) 0
6. $status(请求状态) 304
7. $http_referer(请求来源) "-"
8. $http_user_agent(客户端信息) "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
9. $http_x_forwarded_for(表示 HTTP 请求端真实 IP) "-"
我们也可以根据自己需要日志信息在 nginx 配置文件中修改日志格式。
设置 error_log
error_log 错误日志,记录了访问出错的信息,可以用于定位错误的原因。
error_log 指令语法
error_log file [level];
第一个参数指写入错误日志的路径
第二个参数指日志的级别。level 可以是:debug、info、notice、warn、error、crit、alert、emerg 中的任意值。只有日志的错误级别大于等于level 指定的值才会被写入错误日志中,默认值是 error。
error_log 配置示例
error_log logs/error.log error;
error_log 日志查看

2020/07/21 18:21:47 [emerg] 57325#0: bind() to 0.0.0.0:9000 failed (48: Address already in use)
1. 发生错误时间:2020/07/21 18:21:47
2. 日志级别:emerg
3. 详细信息:bind() to 0.0.0.0:9000 failed (48: Address already in use)
参考文章
nginx 日志功能详解的更多相关文章
- 关于syslog日志功能详解 事件日志分析、EventLog Analyzer
关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...
- MySQL日志功能详解
MySQL日志功能详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询日志 它是用来保存所有跟查询相关的日志,这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果 ...
- Nginx日志深入详解
一.日志分类 Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(/etc/nginx/nginx.conf)中设置,两种日志都可以选择性关闭,默认都是打开的.1.访问日志 ...
- 干货:yii日志功能详解
转载请注明来自souldak,微博:@evagle 一.基本日志功能 详细的介绍查看官网的document:http://www.yiiframework.com/doc/guide/1.1/en/t ...
- MySQL 日志功能详解
MySQL日志分类 1:查询日志 :query log 2:慢查询日志:slow_query_log 查询执行时长超过指定时长的查询操作所记录日志 3:错误日志:error log ...
- Nginx配置文件nginx.conf中文详解(转)
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
- Nginx的配置文件详解
主配置文件: 查看nginx的进程可以看到nginx所使用的配置文件: 主配置一般会被用来设置一些全局的参数: 参数详解: user nobody nobody; //设置nginx ...
- Nginx配置文件中文详解
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
- nginx.conf配置详解
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
随机推荐
- eclipse .project文件 .classpath文件的作用
.classpath文件的作用 可以参考.classpath文件的作用 .project文件的作用 确保你自己的eclipse能创建Java项目,并且正确编译运行helloworld,给eclipse ...
- 一、Adobe Premiere Pro CC概述
一.Adobe Premiere Pro CC概述 使用建议 一.开始 二.在Adobe Premiere Pro CC执行非线性编辑 1.标准的视频剪辑工作流 2.使用Premiere增强工作流 p ...
- 5、struct2的获得jsp参数的第三种方式
在前面已经讲解了通过在action中直接通过jsp的参数和ModelDiver的方式获得浏览器传递的参数,下面我们介绍第三种方式,也是在项目开发中推荐的方式 action不需要在实现ModelDriv ...
- Python3-datetime模块-日期与时间
官方文档 http://python.usyiyi.cn/translate/python_352/library/datetime.html 代码示例 from datetime import da ...
- Data Science and Matrix Optimization-课程推荐
课程介绍:Data science is a "concept to unify statistics, data analysis, machine learning and their ...
- ftp的passive模式
ftp的passive模式 今天在一台测试服务器上搭建ftp,折腾了许久. 主要是不了解ftp的passive模式和port模式的区别.这里记录一下. 和passive模式对应的叫做port模式,也叫 ...
- .NET Core 选项模式【Options】的使用
ASP.NET Core引入了Options模式,使用类来表示相关的设置组.简单的来说,就是用强类型的类来表达配置项,这带来了很多好处.利用了系统的依赖注入,并且还可以利用配置系统.它使我们可以采用依 ...
- 从零开始用electron整个跨平台桌面应用---基础配置篇
1.安装node.npm node以及npm都需要是最新版本(版本过低有坑) 2.安装淘宝镜像cnpm(建议,下载较快) npm install -g cnpm --registry=https:// ...
- 【Xamarin.Forms 2】App基础知识与App启动
系列目录 1.[Xamarin.Forms 1]App的创建与运行 引言 本篇文章将介绍Xamarin.Forms中 App 基础知识和 App的启动. 开发环境 Visual Studio 2019 ...
- java简介&&变量
Day01 简介 数据 1.数据大体分为两类:基本类型和引用类型 2.基本类型的数据分为四类八种,四类为整型,浮点,布尔,字符 3.Long类型的数据超过int范围要在之后面加个L,不加L是整型会进行 ...