在使用nginx进行服务器管理时候,日志对于统计、审查、排错来说非常有利。
  nginx日志相关的配置有:access_log(访问日志)、log_format(日志格式)、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。
  nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令来定义。(主要基于ngx_http_log_module:用于定义请求日志格式)

1.access_log配置解析

1.1.access_log语法

  • access_log path [format [buffer=size [flush=time]]]
  • access_log path format gzip[=level] [buffer=size [flush=time]]
  • access_log syslog:server=address[,parameter=value][format]
  • access_log off

    1.2.access_log默认值

  • access_log log/access.log combined

    1.3.access_log配置段

  • http
  • server
  • location
  • if in location
  • limit_except

    1.4.access_log语法参数解析

  • gzip:压缩等级
  • buffer:设置所需内容缓存区大小
  • flush:保存在缓存区的最长时间
  • off:不记录日志
  • combined:使用默认的格式记录日志(access_log log/access.log combined或access_log log/access.log)

2.log_format配置解析

2.1.log_format语法

  • log_format name string …;

    2.2.log_format默认值

  • log_format combined “…”;
    log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式。格式如下:

    log_format  combined  '$remote_addr - $remote_user  [$time_local]  '' "$request"  $status  $body_bytes_sent  '' "$http_referer"  "$http_user_agent" ';复制代码

    2.3.log_format配置段

  • http

    2.4.log_format语法参数解析

  • name表示格式名称
  • string表示等义的格式。

    2.5.log_format常用的变量参数:

    $remote_addr, $http_x_forwarded_for(反向) 记录客户端IP地址
    $remote_user 记录客户端用户名称
    $request 记录请求的URL和HTTP协议
    $status 记录请求状态
    $body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
    $bytes_sent 发送给客户端的总字节数。
    $connection 连接的序列号。
    $connection_requests 当前通过一个连接获得的请求数量。
    $msec 日志写入时间。单位为秒,精度是毫秒。
    $pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
    $http_referer 记录从哪个页面链接访问过来的
    $http_user_agent 记录客户端浏览器相关信息
    $request_length 请求的长度(包括请求行,请求头和请求正文)。
    $request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
    $time_iso8601 ISO8601标准格式下的本地时间。
    $time_local 通用日志格式下的本地时间。复制代码

    2.6.log_format使用例子

    2.6.1.nginx反向代理时配置log_format

    log_format  porxy  '$http_x_forwarded_for - $remote_user  [$time_local]  '' "$request"  $status $body_bytes_sent '' "$http_referer"  "$http_user_agent" ';复制代码
  • 注:nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录 客户端IP地址和客户端请求的服务器地址。

    2.6.2.http发送给客户端时配置log_format

    http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''"$status" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" ''"$gzip_ratio" $request_time $bytes_sent $request_length';log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" ''"$status" $body_bytes_sent $request_time $bytes_sent $request_length ''[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';open_log_file_cache max=1000 inactive=60s;server {server_name ~^(www\.)?(.+)$;access_log logs/$2-access.log main;error_log logs/$2-error.log;location /srcache {access_log logs/access-srcache.log srcache_log;}
    }
    }复制代码
  • 注:发送给客户端的响应头拥有“senthttp”前缀。 比如$sent_http_content_range。

3.open_log_file_cache配置解析

3.1.open_log_file_cache语法

  • open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
  • open_log_file_cache off;

    3.2.open_log_file_cache默认值

  • open_log_file_cache off;

    3.3.open_log_file_cache配置段

  • http
  • server
  • location

    3.4.open_log_file_cache语法参数解析

  • max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
  • inactive:设置存活时间,默认是10s
  • min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
  • valid:设置检查频率,默认60s
  • off:禁用缓存

    3.5.open_log_file_cache的作用

    对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off)

    3.6.open_log_file_cache使用例子

    open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
    open_log_file_cache off;复制代码

4.log_not_found配置解析

4.1.log_not_found语法

  • log_not_found on | off;

    4.2.log_not_found默认值

  • log_not_found on;

    4.3.log_not_found配置段

  • http
  • server
  • location

    4.4.log_not_found的作用

    是否在error_log中记录不存在的错误。默认是。


5.log_subrequest配置解析

5.1.log_subrequest语法

  • log_subrequest on | off;

    5.2.log_subrequest默认值

  • log_subrequest off;

    5.3.log_subrequest配置段

  • http
  • server
  • location

    5.4.log_subrequest的作用

    是否在access_log中记录子请求的访问日志。默认不记录。


6.rewrite_log配置解析

6.1.rewrite_log语法

  • rewrite_log on | off;

    6.2.rewrite_log默认值

  • rewrite_log off;

    6.3.rewrite_log配置段

  • http
  • server
  • location
  • if

    6.4.rewrite_log的作用

    启用时将在error log中记录notice级别的重写日志。
    基于ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。


7.error_log配置解析

7.1.error_log语法

  • error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];

    7.2.error_log默认值

  • error_log logs/error.log error;

    7.3.error_log配置段

  • http
  • server
  • location
  • main

    7.4.error_log的作用

    配置错误日志。

Nginx 日志配置详情解析相关推荐

  1. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  2. Nginx 日志配置实践

    前言 Nginx日志对于统计.系统服务排错很有用. Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的IP地址.浏览器的信息, ...

  3. Nginx日志配置、错误界面配置、流量控制 第九天

    目录 nginx日志配置 nginx日志介绍 access.log error.log open_log_file_cache rewrite.log nginx的日志轮转 nginx错误界面配置 n ...

  4. Nginx 日志配置

    1.Nginx 日志介绍 Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_for ...

  5. Nginx 日志配置、日志切割

    Nginx 日志配置.日志切割 设置 access.log 语法 log_format自定义格式 设置error_log 语法 日志切割 前置文章:Nginx 的配置文件 nginx.conf Ngi ...

  6. 渗透测试技术分享——nginx日志配置

    Nginx 日志配置 0x00 前言 日志使用用来进行数据统计.问题排错的重要手段.本文主要介绍 nginx 日志相关的配置如 access_log.log_format.log_not_found. ...

  7. 【Nginx 日志配置】【访问日志log_format】【错误日志error_log 指令】【Nginx的日志轮转】

    文章目录 Nginx 日志配置 `log_format` 指令中常用的一些变量: 访问日志 案例 可以配置段:`http`, `stream`, `server`, `location`作用域. er ...

  8. 运维配置:Nginx日志配置详解

    Nginx日志配置详解 前言 Nginx日志对于统计.系统服务排错很有用.Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志).通过访问日志我们可以得到用户的I ...

  9. log nginx 客户端请求大小_后端实践:Nginx日志配置(超详细)

    前言 设置access_log语法 作用域 基本用法 使用log_format自定义日志格式语法 设置error_log语法 基本用法 open_log_file_cache语法 基本用法 总结 前言 ...

  10. nginx日志配置指令详解

    日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_subreq ...

最新文章

  1. enterText与typeText
  2. 用jquery + iframe實現iframe子頁面加載完前的緩沖效果
  3. html的细节优化,网站页面优化细节详解
  4. linux emacs配置文件,[z]使用.emacs.d目录管理Emacs配置文件
  5. When allowCredentials is true, allowedOrigins cannot contain the special value “*“ that cannot be
  6. java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
  7. git cherry-pick合并某个commit
  8. 3808. 画正方形——AcWing题库
  9. react-hooks/exhaustive-deps警告
  10. 计算机重装后不能启动怎么办,重装系统后无法进入系统怎么办 修复进不去系统方法教程...
  11. 解析DeDecms系统的SEO内部优化技巧
  12. 【5G UP】5G QoS参数那点事儿
  13. JavaWeb解决中文下载出现乱码问题
  14. 【Unity小功能开发实战教程】制作跟随倒计时变化的进度条
  15. 华为鸿蒙系统支持旧机型,华为鸿蒙系统2.0来了! 华为鸿蒙2.0系统支持手机机型...
  16. Font Awesome介绍
  17. TM1650代码记录(基于51单片机)
  18. Linux 容器能否弥补 IoT 的安全短板?
  19. Matlab遗传算法神经网络泰坦尼克号
  20. 细粒度车型识别项目(数据集Stanfordcar-196)附源代码

热门文章

  1. js_开发小技巧记录(一)
  2. Java面试题-Java中的锁
  3. cf 189B - Counting Rhombi
  4. MAC电脑安装window系统(一):双系统安装方法
  5. Linux_access the file or directory which start with -
  6. Java:注解(Annotation)自定义注解入门
  7. JSP版LCX:端口转发神器 KPortTran
  8. 浙江大学-英特尔嵌入式技术中心成立
  9. 处置Linux下Oracle Tomcat 8080端口辩说
  10. 推荐几个阿里、腾讯、美团大佬的公众号