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
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16137233.html