关于nginx日志配置指令介绍

article/2025/5/15 9:07:15

本文主要介绍了nginx日志配置指令详解,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指令

语法: 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;

默认值: access_log logs/access.log combined;
配置段: http, server, location, if in location, limit_except

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

2. log_format指令

语法: log_format name string …;
默认值: log_format combined “…”;
配置段: http

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

代码如下:


log_format  combined  '$remote_addr - $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地址和客户端请求的服务器地址。如下所示:

代码如下:


log_format  porxy  '$http_x_forwarded_for - $remote_user  [$time_local]  '
                             ' "$request"  $status $body_bytes_sent '
                             ' "$http_referer"  "$http_user_agent" ';

日志格式允许包含的变量注释如下:

代码如下:


$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 通用日志格式下的本地时间。

发送给客户端的响应头拥有“sent_http_”前缀。 比如$sent_http_content_range。

代码如下:


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;
  }
 }
}

3. 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:禁用缓存
实例如下:

代码如下:

open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;

4. log_not_found指令

语法: log_not_found on | off;
默认值: log_not_found on;
配置段: http, server, location
是否在error_log中记录不存在的错误。默认是。

5. log_subrequest指令

语法: log_subrequest on | off;
默认值: log_subrequest off;
配置段: http, server, location
是否在access_log中记录子请求的访问日志。默认不记录。

6. rewrite_log指令

由ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。 Nginx重写规则指南
语法: rewrite_log on | off;
默认值: rewrite_log off;
配置段: http, server, location, if
启用时将在error log中记录notice级别的重写日志。

7. error_log指令

语法: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];
默认值: error_log logs/error.log error;
配置段: main, http, server, location
配置错误日志。

来源:微点阅读  https://www.weidianyuedu.com


http://chatgpt.dhexx.cn/article/AtKoeJMm.shtml

相关文章

宝塔自定义nginx访问日志配置

nginx日志自定义配置 问题 有时nginx默认的日志满足不了需求,比如网站绑定了多个域名,想知道用于访问的是具体域名,这时候就需要自定义nginx日志了。 nginx 中access log 记录了用户访问的页面以及用户浏览器、ip和其他的访问信息 log_for…

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

目录 nginx日志配置 nginx日志介绍 access.log error.log open_log_file_cache rewrite.log nginx的日志轮转 nginx错误界面配置 nginx流量控制 nginx如何限流 配置基本限流 nginx流量限制(高级) 流量控制相关功能 nginx日志配置 nginx日志…

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

Nginx日志配置详解 前言 Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息&…

nginx日志[配置解释]

经常使用nginx,但是对nginx中的日志配置了解的不多,最近简单的学习了一下,在此简略的记录下。 nginx基础配置如下: user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/ngi…

后端实践:Nginx日志配置(超详细)

前言 Nginx日志对于统计、系统服务排错很有用。 Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我…

Linux下玩转nginx系列(三)---nginx日志配置文件说明

nginx日志共三个参数。 access_log: 定义日志的路径及格式。 log_format: 定义日志的模板。 open_log_file_cache: 定义日志文件缓存。 nginx access日志配置 access_log日志配置 access_log用来定义日志级别,日志位置。语法如下: 日志级别&#x…

Linux中级实战专题篇三:nginx服务(日志介绍,作用域,格式定义,流量控制,访问控制模块,用户信任登录)

Nginx 日志配置 1、Nginx 日志介绍 Nginx 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的支持,日志格式通过 log_format 命令来定义,日志对于统计和排错是非常有利的,下面总结…

英媒:知名色情网站约80万名用户账号遭曝光

英媒称,色情网站Brazzers约80万登记用户的资料遭曝光。黑客从与网站有关的论坛中窃取这些数据。 英国广播公司网站9月7日报道,Brazzersforum是给Brazzers用户讨论影片内容和演员的论坛,很多人看来在两个网站上使用相同的登录名称和密码&#…

黑客团体Anonymous宣称已经攻陷40家儿童色情网站

Anonymous从一成立以来就连续攻击企业和联邦政府的网站,他们的大部分攻击行动公然违法,但事实上这一组织向来以自己的价值观行事,例如他们对儿童色情网站深恶痛绝,在攻击上述网站的同时,自愿扮演起正义维护者的角色。 …

一个emoji表情包处理工具类

一个emoji表情包处理工具类 参考业务场景解决方案方案一(mysql字符集)方案二(emoji表情包转码) 尊重他人成果、转载请注明出处 参考 https://github.com/vdurmont/emoji-java 业务场景 在常规如APP推送、BBS、论坛等类型的业务系…

有趣的表情包购物网站

首页 一个轮播图 首页 换肤 产品页 一个放大镜 我的账户界面 产品信息界面 一个打星小程序 可增删 以及删除的购物车界面

怎么自己制作动图表情包?在线gif生成的操作步骤

gif表情包在我们平时的生活里斗图的时候经常会用到,那么如何用图片制作gif(https://www.gif.cn)表情包呢?今天就分享一个在线gif生成的简单方法,利用gif制作工具将图片转gif动图,下面是详细的操作步骤。 打…

表情符号(emoji)大全,只此一文便够了

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 表情符号(emoji)大全、只此一文便够了 摘要集中展示笑脸和动物人庆贺和物品食品和物交通和地点符号 符号表smileys_and_peopleanimals_and_naturefood_and_dr…

热门聊天表情包怎么找?怎么制作?多平台表情合集,没有找不到的表情包!搞笑-金馆长-张家辉-卡通-二次元-gif等表情大全

去年的时候我做了一个表情包的小程序:i表情助手。 第一个版本做的比较简陋,一是表情图片资源比较少,二是需要用户填写文案制作,总的来说还是不够好用,所以一直没有进行推广。 过完年放完假回来,我决定好好…

22、实现发送文字、表情包

实现发送文字、表情包 一、 发送原理 二、 前端处理核心方法三、 后端逻辑处理函数 func dispatch(data[]byte)四、对端接收到消息后处理函数五、表情包简单逻辑六、发送图片流程七、 发送语音八、 发送视频测试 实现发送文字、表情包 一、 发送原理前端user1拼接好数据对象 …

是谁在Go标准库的源码中植入了色情网站?

昨天,有网友在群里说在GitHub上发现了色情网站! GitHub上怎么会有色情网站呢?网友给出了下面的截图: 这个出现在Go标准库中的Issue里面,有一个url… 该Issue地址:https://github.com/golang/go/issues/488…

调皮的表情图(Emoji)

调皮的表情&#xff08;Emoji&#xff09; 示例HTMLCSSJS 更多有趣示例 尽在 知屋安砖社区 示例 HTML <div class"main"><div class"emoji"><div class"emoji__eyes abs"><div class"emoji__eye"></div&…

现表情包大幅流行,今天教你们开发个人表情包网站

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者&#xff1a;python学习教程 ( 想要学习Python&#xff1f;Python学习交流群&#xff1a;1039649593&#xff0c;满足你的需求…

python是世界上最好的语言表情包_语言表情包 - 语言微信表情包 - 语言QQ表情包 - 发表情 fabiaoqing.com...

如果你有一个朋友很久没跟你联系了一是他死了是他是学汉语言的三是他在期末考试如果他既是汉语言的又在准备期末考试你就当他死了吧 - 汉语言专业表情包 对方不想和你说话,向你推荐了世界上最好的语言!(PHP)_PHP_语言_对方表情 组织语言中(写作业中)_作业_语言_组织表情 …

情网

情网 我掩饰不住的慌张&#xff0c;在迫不急待地张望&#xff0c;生怕这一路是好梦一场。而你是一张无边无际的网&#xff0c;轻易就把我困在网中央&#xff0c;我越陷越深越迷惘&#xff0c;路越走越远越漫长&#xff0c;如何我才能锁住你眼光。情愿就这样守在你身旁&#xff…