2、Nginx-日志

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin

1.log_format日志格式

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


$remote_addr #客户端ip地址
$remote_user #远程用户(空)
$time_local #时间 11/May/2021:10:26:41
 +0800
$request #用户请求报文的起始行 "GET
 /index.html HTTP/1.1"
$request_uri #用户请求的uri
$status #状态码
$body_bytes_sent #http响应报文的主体大小(文件大小) 字
节 (服务器给你发送了1个多大的文件)
$http_referer #从哪里跳转到你的网站 (从哪里跳转)
分析用户的来源,精确投放广告(sem)
$http_user_agent #用户的代理(浏览器)
$http_x_forwarded_for #记录用户真实ip地址


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

2.access_log访问日志设置

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

path是路径
format 日志格式
gzip是否压缩 注压缩后日志最好命名为access.log.gz
fush 定时更新

#应用案例: 指定位置及格式
access_log /var/log/nginx/access.log main;
#应用案例: 压缩 日志先写入到缓存 每隔3s写入到磁盘
[root@web01 /etc/nginx/conf.d]# cat www.kirin7.conf
server {
listen 80;
server_name www.kirin7.com;
access_log /var/log/nginx/www_access.log.gz main
 gzip buffer=128 flush=3;
location / {
root /code/www;
index index.html;
}
}

3.错误日志格式

Syntax: error_log file [level];
Default: error_log logs/error.log error;
Context: main , http , mail , stream , server , location

level #日志格式
debug #最详细
notice #
error #

4.nginx日志切割

日志切割: 定期把切割成一个新的文件(加上日期). 避免日志过大

#如何实现:
##logrotate 命令 + /etc/logroate.d/配置文件
logroate -f /etc/logroate.d/nginx
[root@web01 /etc/nginx/conf.d]# cat
 /etc/logrotate.d/nginx
/var/log/nginx/*.log { #指定你要切割的文件
daily #每天
missingok #如果对应日志不存在,跳过,不
显示错误信息
rotate 52 #最多保留多少个切割后的日
志.
compress #日志是否压缩 gzip
delaycompress #延迟一个周期,然后在进行压
缩
notifempty #not if empty 如果日志是
空的跳过.
create 640 nginx adm #日志权限,所有者
sharedscripts #
postrotate #在日志轮询(切割)之后,执行
里面的命令
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat
/var/run/nginx.pid` #systemctl reload nginx
fi
endscript
}
#nginx 定期切割原理
[root@web01 /var/log/nginx]# ll /etc/cron.daily/
total 8
-rwx------. 1 root root 219 Apr 1 2020 logrotate
posted @ 2022-04-12 20:59  kirin(麒麟)  阅读(56)  评论(0编辑  收藏  举报
Δ