nginx access_log

nginx 日志说明

不同用户防卫Nginx会把每个用户访问往咱的日志信息记录到指定的日志文件里,供网站管理员分析用户浏览行为等,此功能又ngx_http_log_module 模块负责。

控制访问日志的参数

参数 说明
log_format 通过不同的名称来定义日志的输出格式,可以定义多个
access_log 用来指定日志保存的路径和使用的输出格式

nginx中日志的作用

  • access日志

记录nginx处理的请求的过程,包含请求类型、时间、客户端信息、处理结果、处理时长等信息,具体可以通过log_format指令引用特定变量来记录相关信息。

  • error日志

记录nginx进程启动、停止、重启及处理请求过程中发生的错误信息。

  • rewrite日志

记录rewrite规则工作的过程,可以用于调试rewrite规则。

nginx中可以记录的日志主要有access日志、error日志和rewrite日志。前两种由ngx_http_log_module模块予以支持,rewrite日志则由ngx_http_rewrite_module模块提供,这两个模块默认都已包含且启用。

自定义一个 nginx 日志格式

# 定义一个日志的输出格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
# 指定日志的报错位置和指定日志的输出格式为上面定义的格式(main为上面定义的日志标签)
access_log logs/access.log main;

log_format 语法格式及参数语法说明

log_format [name [string];

name表示格式名称,string表示等义的格式。log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式。

log_format格式变量:

$http_referer          # 记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
$http_user_agent # 记录客户端访问信息,例如:浏览器、手机客户端等
$remote_addr # 记录客户端IP地址
$http_x_forwarded_for # 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
$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 # 通用日志格式下的本地时间。

access_log语法格式及参数语法

access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

作用域   : http, server, location, if in location, limit_except

其他参数说明

access_log  off;  #关闭access_log,即不记录访问日志

access_log path [format [buffer=size [flush=time]] [if=condition]];

access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];

access_log syslog:server=address[,parameter=value] [format [if=condition]];

说明:

buffer=size       # 为存放访问日志的缓冲区大小

flush=time        # 为缓冲区的日志刷到磁盘的时间

zip[=level]       # 表示压缩级别

[if = condition]  # 表示其他条件

open_log_file_cache指令


语法格式:
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time]; 使用open_log_file_cache来设置日志文件缓存(默认是off)。 默认值: open_log_file_cache off;
作用于: http, server, location 对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
参数注释如下:
max # 设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
inactive # 设置存活时间,默认是10s
min_uses # 设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
valid # 设置检查频率,默认60s
off # 禁用缓存

nginx 日子配置的更多相关文章

  1. 如何在Nginx下配置PHP程序环境

    1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...

  2. 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

    为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...

  3. Nginx主配置参数详解,Nginx配置网站

    1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...

  4. nginx + tomcat配置负载均衡

    目标:Nginx做为HttpServer,连接多个tomcat应用实例,进行负载均衡. 注:本例程以一台机器为例子,即同一台机器上装一个nginx和2个Tomcat且安装了JDK1.7. 1.安装Ng ...

  5. spring4+websocket+nginx详细配置

    实现的版本jdk1.7.0_25, tomcat7.0.47.0, Tengine/2.1.1 (nginx/1.6.2), servlet3.0, spring4.2.2 使用maven导入版本3. ...

  6. Nginx Location配置总结

    Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...

  7. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

  8. nginx缓存配置的操作记录梳理

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  9. 在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

    看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you d ...

随机推荐

  1. 【java源码】解读HashTable类背后的实现细节

    HashTable这个类实现了哈希表从key映射到value的数据结构形式.任何非null的对象都可以作为key或者value. 要在hashtable中存储和检索对象,作为key的对象必须实现has ...

  2. 'An instance 0x155e74a0 of class UIWebView was deallocated while key value observers were still registered with it.

    在iOS和html混编的时候,当用iOS原生的navigation导航pop回去的时候,出现 *** Terminating app due to uncaught exception 'NSInte ...

  3. 包建强的培训课程(2):Android与设计模式

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  4. 一条SQL语句在MySQL中如何执行的

    本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的. 在分析之前我会先带着你看看 MySQL 的基础架构, ...

  5. txt文本处理---行未添加逗号

    做音频处理过程中,经常遇到需要对文本进行转换,今天就遇到了一个行末加逗号的问题,找到了几种有效的方式,做个记录吧. 以下是几种方法实现: python代码实现: import os with open ...

  6. Scala - 快速学习08 - 函数式编程:高阶函数

    函数式编程的崛起 函数式编程中的“值不可变性”避免了对公共的可变状态进行同步访问控制的复杂问题,能够较好满足分布式并行编程的需求,适应大数据时代的到来. 函数是第一等公民 可以作为实参传递给另外一个函 ...

  7. python基础-变量运算符(3)

    一.注释 注释就是对代码的解释和说明.目的是为了让别人和自己很容易看懂.为了让别人一看就知道这段代码是做什么用的.正确的程序注释一般包括序言性注释和功能性注释.序言性注释的主要内容包括模块的接口.数据 ...

  8. python 安装numpy遇到无法卸载的解决办法

    python 安装模块numpy遇到无法卸载的情况的解决办法 python在安装seaborn的时候,需要更新numpy模块,但是更新失败,输出下面的错误: Cannot uninstall 'num ...

  9. .NET Core部署中你不了解的框架依赖与独立部署

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9703460.html NET Core项目发布的时候你有没有注意到这两个选项呢?有没有纠结过框架依赖与独 ...

  10. vue 解决无法设置滚动位置的问题

    问题描述 在实现锚点定位的时候发现无法设置滚动条的位置. 在Vue中,使用 document.body.scrollTop=952 无法设置滚动条的高度. document.body.scrollTo ...