网站首页 > 技术教程 正文
log 阶段是http请求处理11个阶段的最后一个阶段。
这个阶段主要靠ngx_http_log_module模块来处理。
功能:把http请求相关信息记录到日志中。
注意:这个模块是没有办法禁用的。
语法:
Syntax: log_format $name [escape=default|json|none] string ...;
Default: log_format combined "...";
Context: http
log_format就是定义日志的格式 ,其默认值是combined,只能出现在http的上下文中。
默认格式:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent ' '"$http_referer"
"$http_user_agent"';
日志文件路径配置
Syntax: access_log $path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
Default: access_log logs/access.log combined;
Context: http, server, location, if in location, limit_except
access_log 主要控制日志路径,及是否打开访问日志。format是可选项如果不填,则默认使用log_format也就是默认的combined
path路径里可以包含变量的,比如我们用一个Nginx搭建了好几个域名的服务。默认情况下所有域名的日志都是在同一个日志文件里的。我们可以在path中加上host的变量,这样每个域名都有自己单独的日志文件了。
还可以根据条件判断是否记录请求日志。
日志缓存
功能:如果每次日志都要写入磁盘,那么会频繁引发io调用,所以批量将内存中的日志写入磁盘,可以提升性能。
使用缓存后将日志写入磁盘的时机:
1. 所有待写入磁盘的日志大小超出缓存大小,也就是缓存中的大小超出access_log 中的buffer大小。
2. 达到flush知道的过期时间。比如flush 是1分钟,到了1分钟没有到达buffer大小也会写入磁盘。和redis的设计思想有类似的地方。
3. worker进程执行reopen命令,或正在关闭的时候也会记录日志。
日志还有压缩功能
- 功能:批量压缩内存中的日志后,再写入磁盘。
- buffer大小默认是64KB
- 压缩级别默认是1 (1最快 压缩率最低,9 最慢 压缩率最高)
文件句柄缓存
当我们日志文件名中包含变量时,可能会被经常打开关闭,还有一种优化方案,就是缓存一些文件句柄。
语法
Syntax: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
Default: open_log_file_cache off;
Context: http, server, location
Syntax: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time]; open_log_file_cache off; Default: open_log_file_cache off; Context: http, server, location
参数详解
- max:缓存内的最大文件句柄数量,超出后用LRU算法淘汰
- inactive:文件访问完后在这段时间内不会被关闭。默认是10秒
- min_uses:在inactive时间内使用次数超过min_uses才会继续存在内存中。
- valid:超出valid时间后,将对缓存的日志文件检查是否存在。默认是60s
- off:关闭缓存功能。
猜你喜欢
- 2024-10-12 案例:配置apache和nginx的SSL加密传输协议
- 2024-10-12 Linux下防御ddos攻击(linux防护)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)