nginx的access_log与error_log
参考文章:https://juejin.im/post/5aa09bb3f265da238f121b6c
本篇文章主要介绍一下 nginx 服务器两种日志查看:access_log、error_log
access_log:指的是访问日志,我们通过访问日志可以获取用户的 IP、请求处理的时间、浏览器信息等
error_log:错误日志记录了访问出错的信息,可以用于定位错误的原因
设置 access_log
访问日志主要用于记录客户端的请求。客户端向 nginx 服务器发起的每一次请求都会被记录到 access_log 中。
包含请求 IP、时间、访问 url等等,当然访问日志中具体记录哪些日志信息我们可以通过 log_format 设置
查看日志存放地址
find / -name nginx.conf

根据查询出来地址,进入 nginx.conf 文件查找 access_log 和 error_log 文件的路径


设置 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 /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 分钟
查看 access 访问日志(日志摘抄来自网上,主要用于说明问题)

访问日志分析
摘出来一段部分分析:
100.109.195.91 - - [17/Feb/2017:00:08:11 +0800] "GET /data/upload/shop/common/loading.gif HTTP/1.0" 200 134 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
100.109.195.78 - - [17/Feb/2017:00:08:11 +0800] "GET /shop/templates/default/images/u-safe.png HTTP/1.0" 200 3675 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
100.109.195.26 - - [17/Feb/2017:00:08:11 +0800] "GET /data/upload/shop/adv/05240495346955824.jpg HTTP/1.0" 404 564 "http://www.mall121.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" "140.205.201.12"
1.100.109.195.91 $remote_addr 客户端(用户) IP地址
2.[17/Feb/2017:00:08:11 +0800] $local_time 访问时间
3."GET /data/upload/shop/common/loading.gif HTTP/1.0" $request GET请求的 url 地址
4.200 $status 请求状态
5.134 $body_bytes_sent 请求页面大小,默认 B
6."http://www.mall121.com/" $refer 页面来源即从哪个页面跳转过来,专业叫refer
7."Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0; Windows NT 6.1; SLCC2 2.5.5231; .NET CLR 2.0.50727; .NET CLR 4.1.23457; .NET CLR 4.0.23457; Media Center PC 6.0; MS-WK 8)" $http_user_agent 用户浏览器信息,包含版本、类型等
8."140.205.201.12" $http_x_foewarded_for php中可以通过你此项获取用户真实ip地址
我们也可以根据自己需要日志信息在 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
nginx的access_log与error_log的更多相关文章
- nginx的access_log与error_log(三)
本篇介绍一下在nginx服务器的的两种日志的查看. 根据你找出来的地址,尽心vi编辑,进入nginx.conf文件进行查找路径 从而找到,我机子的两个日志存放地点: /var/logdat ...
- nginx中access_log和nginx.conf中的log_format用法
nginx服务器日志相关指令主要有两条: 一条是log_format,用来设置日志格式; 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小 可以参加ngx_http_log_ ...
- Nginx错误日志(error_log)配置及信息详解
Nginx错误日志信息介绍 Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(ngx_core_module)的参数,该参数的名字为error_log,可以放在Main区块中全局配 ...
- [日常] nginx的错误日志error_log设置
nginx error_log设置1.error_log syslog:server=192.168.1.1 [级别] //直接发送给远程syslog日志集中服务器2.error_log stderr ...
- nginx过滤access_log中HEAD、OPTIONS请求记录
网上很多教程说是这样做: if ($request_method = HEAD) { access_log off; } 试了之后是不行的,正确的做法如下: http { map $request_m ...
- nginx+awstats安装过程
awstats来来回回也装了好多遍了,每次都是现装现查,隐约的记得整个配置比较麻烦,中间有几个需要特别注意的地方,又记不得那些需要特殊对待,只能边找资料边回忆,最终还是搞出来了,在此分享给大家. 首先 ...
- zabbix 3.2.6+centos 7 +nginx 1.12+ mysql 5.6+ Grafana +php 5.6
先只记录关键点 1.nginx.MYSQL 用官方的YUM库安装 2.CENTOS升级到最新 3.ZABBIX 官方RPM安装,然后下载源码库,源码中的PHP复制至NGINX的配置目录 4.NGINX ...
- 在 Linux 上使用 Nginx 和 Gunicorn 托管 Django 应用
介绍 托管 Django Web 应用程序相当简单,虽然它比标准的 PHP 应用程序更复杂一些. 让 Web 服务器对接 Django 的方法有很多. Gunicorn 就是其中最简单的一个. Gun ...
- nginxのerror_logはformat指定できない.
備忘録です. http://toshitanian.hatenablog.com/entry/2013/10/25/023838 2013-10-25 nginxのerror_logはformat指定 ...
随机推荐
- ISO/IEC 9899:2011 条款6.2——概念
6.2 概念 6.2.1 标识符的作用域 6.2.2 标识符的连接 6.2.3 标识符的名字空间 6.2.4 对象的存储持久性 6.2.5 类型 6.2.6 类型的表示 6.2.7 兼容类型与组合类型 ...
- 我非要捅穿这 Neutron(二)上层资源模型篇
目录 文章目录 目录 Neutron 的资源模型 Network 运营商网络和租户网络 创建运营商网络 创建租户网络 创建外部网络 Network 小结 Subnet IP 核心网络服务 Subnet ...
- 解决:error: Cannot find libmysqlclient_r under /usr/local/mysql.
libodb-mysql-2.4.0.tar.gz 解压完安装libodb-mysql时,执行完./cofigure后,出现如下错误: checking for libmysqlclient_r... ...
- bind智能DNS + bindUI管理系统(postgresql + bind dlz)
# 软件环境: * Centos 7.6 * bind-9.14.1.tar.gz * postgresql 11 * python 3.7 * django 2.2.1 QPS:单节点1590 qp ...
- SAP标准屏幕中字段描述增强
转自:https://www.cnblogs.com/sap-ronny/p/7921817.html如果想要改变标准屏幕中的字段名称,如把物料主数据基本数据元素的名字改为我们想要的名字 . 1.首先 ...
- 【物联网】arduino wifi
https://www.arduino.cn/forum.php?mod=viewthread&tid=49561 http://dy.163.com/v2/article/detail/DC ...
- Sed之大小写转换
使用sed进行大小写转换 大写转小写 echo "ABCD"|sed 's#[A-Z]#\l&#g' 小写转大写 echo "abcd"|sed 's# ...
- bootstrap-table中使用bootstrap-switch开关按钮
先上图 准备工作: 添加css和js文件 #bootstrap开关按钮#} <link href="https://cdn.bootcss.com/bootstrap-switch/3 ...
- LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
581. 最短无序连续子数组 581. Shortest Unsorted Continuous Subarray 题目描述 给定一个整型数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序 ...
- CentOS7 Python3下安装 TensorToolbox 1.0.22时的一些错误及解决办法
CentOS7 Python3下安装 TensorToolbox 1.0.22 (python3) [jiangshan@localhost ~]$ pip install TensorToolbox ...