参考文章: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的更多相关文章

  1. nginx的access_log与error_log(三)

    本篇介绍一下在nginx服务器的的两种日志的查看.   根据你找出来的地址,尽心vi编辑,进入nginx.conf文件进行查找路径     从而找到,我机子的两个日志存放地点: /var/logdat ...

  2. nginx中access_log和nginx.conf中的log_format用法

    nginx服务器日志相关指令主要有两条: 一条是log_format,用来设置日志格式; 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小 可以参加ngx_http_log_ ...

  3. Nginx错误日志(error_log)配置及信息详解

    Nginx错误日志信息介绍 Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(ngx_core_module)的参数,该参数的名字为error_log,可以放在Main区块中全局配 ...

  4. [日常] nginx的错误日志error_log设置

    nginx error_log设置1.error_log syslog:server=192.168.1.1 [级别] //直接发送给远程syslog日志集中服务器2.error_log stderr ...

  5. nginx过滤access_log中HEAD、OPTIONS请求记录

    网上很多教程说是这样做: if ($request_method = HEAD) { access_log off; } 试了之后是不行的,正确的做法如下: http { map $request_m ...

  6. nginx+awstats安装过程

    awstats来来回回也装了好多遍了,每次都是现装现查,隐约的记得整个配置比较麻烦,中间有几个需要特别注意的地方,又记不得那些需要特殊对待,只能边找资料边回忆,最终还是搞出来了,在此分享给大家. 首先 ...

  7. 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 ...

  8. 在 Linux 上使用 Nginx 和 Gunicorn 托管 Django 应用

    介绍 托管 Django Web 应用程序相当简单,虽然它比标准的 PHP 应用程序更复杂一些. 让 Web 服务器对接 Django 的方法有很多. Gunicorn 就是其中最简单的一个. Gun ...

  9. nginxのerror_logはformat指定できない.

    備忘録です. http://toshitanian.hatenablog.com/entry/2013/10/25/023838 2013-10-25 nginxのerror_logはformat指定 ...

随机推荐

  1. Flutter之BLOC

    flutter_bloc 是一个bloc第三方库,这个库很方便的让你集成bloc模式,这个库结合了RXDart,先了解一下bloc 的模式吧 1,widget 触发event 事件 2,bloc 接收 ...

  2. bat实现每天定时执行命令[windows底下每天重启一下Nginx]

    --试验通过--Windows环境脚本名称:restart.bat脚本内容: @echo offtaskkill /f /fi "IMAGENAME eq nginx.exe"cd ...

  3. bat函数调用 带返回值

    bat 脚本之 使用函数 摘自:https://blog.csdn.net/peng_cao/article/details/73999076 综述 bat函数写法 bat函数调用 bat函数返回值 ...

  4. Siamese Net

    参考博客:https://blog.csdn.net/ybdesire/article/details/84072339

  5. docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份

    service docker start - docker 启动 service docker stop - docker 关闭 1.docker 镜像创建—使用的默认镜像有数据卷 docker pu ...

  6. Docker入门之docker-compose

    参考:https://blog.51cto.com/9291927/2310444 一,Docker-compose简介 1,Docker-compose简介 Docker-Compose项目是Doc ...

  7. SpringBoot学习笔记:读取配置文件

    SpringBoot学习笔记:读取配置文件 配置文件 在以往的项目中,我们主要通过XML文件进行框架配置,业务的相关配置会放在属性文件中,然后通过一个属性读取的工具类来读取配置信息.在SpringBo ...

  8. Selenium登录126邮箱,chrome定位不到账号输入框解决办法

    使用id定位Message: no such element: Unable to locate element: {"method":"id","s ...

  9. Sap MM 定义物料号码范围

    Sap里面的物料编号可以设置内部给号或者外部给号,外部的意思就是通过手动输入,内部就是系统自动根据号码段分配. 物料号是根据物料类型定义范围的. 笔记 作者:明光烁亮 出处:http://www.cn ...

  10. 【GStreamer开发】GStreamer基础教程06——媒体格式和pad的Capabilities

    目标       Pad的Capabilities是一个GStreamer element的基础,因为framework大部分时间是自动处理的,所以我们几乎感觉不到它的存在.本教程比较偏向原理,介绍了 ...