Nginx – access_log格式及配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx – access_log格式及配置相关的知识,希望对你有一定的参考价值。

日志格式

日志内容

192.168.199.164 jeson [14/Apr/2018:07:17:09 +0800] “GET /?feed=rss2 HTTP/1.1” 200 13883 “http://knowledge.me/” “Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko” “-“

日志变量

$remote_addr  $remote_user [$time_local] “$request” ‘
$status $body_bytes_sent “$http_referer” ‘
“$http_user_agent” “$http_x_forwarded_for”‘;

 

日志配置

 

一般情况下,访问日志基于虚拟主机(server标签段)内,以便于针对该站点的访问记录。

 

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

 

示例:

 

access_log off; #关闭日志功能
access_log /spool/logs/nginx-access.log main gzip buffer=32k fush=5s; #日志保存在路径下,使用main定义的格式,用压缩及缓存32k后,5秒后刷入磁盘。

 

思考的问题

 

当大并发量的时候,日志文件会对磁盘的IO有压力。需要使用 buffer=size gzip[=level] flush=time 进行优化。

 


 

日志的轮询

 

nginx的日志没有自动轮询的功能,也就是日志文件不会按年月日来生成文件。

cat /usr/local/nginx/logs/cut_longhsuai.sh
#!/bin/bash
# cut the access log for www.longshuai.com
basedir=/usr/local/nginx
old_log_path=$basedir/logs/access.log
log_save_path=$basedir/logs
save_log_name=access_$(date -d “yesterday” +”%Y%m%d”).log
[ -f “$old_log_path” ] || exit 1
/bin/mv $old_log_path $log_save_path/$save_log_name
$basedir/sbin/nginx -s reopen

添加到定时任务计划

chmod +x /usr/local/nginx/logs/cut_longshuai.sh
crontab -e
00 00 * * * /bin/sh /usr/local/nginx/logs/cut_longshuai.sh &>/dev/null

 

 

 


 





以上是关于Nginx – access_log格式及配置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 日志文件 access_log详解及日志分割

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

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

nginx服务器access_log日志分析及配置详解

Nginx访问日志日志切割及静态文件不记录日志和过期时间的配置

Nginx访问日志日志切割静态文件不记录日志和过期时间