Linux nginx 玩转日志模块

NGINX 日志

访问日志配置规则

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

log_format # 日志格式

  1. $remote_addr #远程地址,记录客户端ip地址
  2. $remote_user #远程访问用户
  3. [$tune_local] 服务器自身时间
  4. $request #请求,记录请求的url和http协议
  5. $status # 状态,记录http请求状态码
  6. $body_bytes_sent # 发送给客户端的字节数,不包括响应头的大小
  7. $http_referer #记录从哪个页面链接访问过来的
  8. $http_user_agent #记录客户端浏览器代理相关信息
  9. $http_x_forwarded_for #代理Ip

个性化404错误页配置

server{
     listen 80; # 监听端口
     server_name  dalei.com;#服务器域名
     
	error_page 404 /404.html; #定义错误页
	#实际404定位位置
	location = /404.htnl {
	root /dalei;#页面资源路径
	}
}

在dalei 文件夹下创建404.html页面

systemctl restart nginx #重启nginx

重启后访问不存在的页面就会跳转到dalei文件夹下的404.html页面

在这里插入图片描述

日志缓存

  1. 当大量访问到来时,对于每一条日志记录,都将是先打开文件,在写入日志,然后关闭,占用了系统IO与业务无关,如何节省IO可以使用open_log_file_cache max=1000 inactive=20s min_uses=3 valid=1m; 来设置。
  1. max=1000 指的是日志文件的FD(文件描述符),最大的缓存数量为1000,
  2. inactive=20s 用户不活跃时间,每20秒检测一次
  3. min_uses=3 20秒内小于3次访问FD,就清理掉FD,结合inactive 20s 的时间
  4. valid=1m 检测周期为1分钟
    在这里插入图片描述

总结:
缓存最大支持开启1000个FD(日志文件),到了极限每分钟开始清除掉,20秒内小于3次的文件FD。
官方不建议打开,日志缓存虽然节省了磁盘,但是增大了内存资源占用

日志轮转/切割

  1. nginx 安装,会默认启动日志轮转
  2. rpm -ql nginx|grep log # 查找日志轮转文件
    在这里插入图片描述
# 表示轮转切割/var/log/nginx/下的所有日志文件
/var/log/nginx/*.log {
        daily  #轮转周期以天为单位
        missingok  #日志丢失不提示
        rotate 52  #保留 52天日志
        compress #文件压缩
        delaycompress # 延迟压缩(避开文件切割处理)
        notifempty  #空文件不轮转
        create 640 nginx adm #创建轮转日志文件,权限与文件所属用户和组
        sharedscripts
        #重启
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

日志分析

网站ip,pv,uv都可以使用日志分析后得出

UV统计 awk '{print $10}' host.access.log | sort -r |uniq -c |wc -l
独立IP awk '{print $1}' host.access.log | sort -r |uniq -c | wc -l
总PV awk '{print $6}' host.access.log | wc -l
统计当个页面访问量 grep index.html host.access.log | wc -l

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值