当前位置:首页 > 技术文章 > 正文内容

Nginx奇技淫巧之:按日期自动生成日志文件

arlanguage4个月前 (12-24)技术文章46

时光闹钟app开发者,请关注我,后续分享更精彩!

坚持原创,共同进步!

前言

之前文章:Nginx奇技淫巧之:用户行为埋点数据采集实现,介绍了Nginx获取post请求body参数生成日志文件的方法。当业务埋点量信息很大时,所有数据累加到一个日志文件中,会导致单个文件越来越大,后期难于清理和维护。本文将向大家介绍,按日期自动生成日志文件的方法。希望对有需要的小伙伴有所帮助和参考。

Nginx配置

Nginx配置文件调整

http块添加以下配置

# 新增logdate日期变量
    map $time_iso8601 $logdate {
      '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
      default    'date-not-found';
    }

server块添加日志文件变量

生成日志文件的地方添加日期信息,详见如下代码块注释

        location /trackLog {
            if ($request_method !~* POST) {
               return 403;
            }
           # 日志文件名添加日期变量
            access_log  /usr/local/nginx/logs/tracklog-$logdate.log  tracklog;
            proxy_pass http://127.0.0.1/return200/;
        }

        location /return200 {
            default_type application/json;
            return 200 '{"code":0,"msg":"success"}';
        }

赋权日志文件目录

按日期动态生成日志文件,需确保对应日志目录具有相应权限。以下为演示代码,生产环境请根据具有情况按需赋权。

chmod -R 777 /usr/local/nginx/logs/*

生效Nginx Config

# Nginx sbin目录执行配置生效命令
./nginx -s reload

测试post请求

# 部署Nginx服务器执行测试post请求,body参数可根据业务场景自行定义
curl -H "Content-type:application/json" -X POST -d '{"name":"test"}' http://localhost/tracklog

日志文件查看

切换到日志目录,查看文件名和内容

对应目录下已生成tracklog-{日期}.log文件

具体文件内容

总结

本文介绍了Nginx按日期动态生成日志文件的方法。包括Nginx配置文件设置,目录赋权,测试验证内容。相信看到这里的小伙伴,对具体使用有了大致的了解。希望本文对小伙伴有所帮助,也欢迎留言讨论相关技术问题,一块进步。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/411.html

分享给朋友:

“Nginx奇技淫巧之:按日期自动生成日志文件” 的相关文章

nginx多站点的配置

一、多站点配置的引入文件/etc/nginx/nginx.conf 中引入文件夹/etc/nginx/conf.d中的站点配置文件。引入的代码为:include /etc/nginx/conf.d/*.conf;二、nginx的配置文件1、查看nginx进程systemctl status ngin...

linux安装nginx及简单操作

下载安装包:通过这个命令下载安装包linux安装nginx:1、解压安装包: tar -zxvf nginx-1.14.0.tar.gz2、cd 进入解压后的目录3、编译安装:./configure --prefix=/usr/local/nginx (如果编译不成功,缺少的依赖库 根据提示安装上后...

405状态码Nginx解决办法

最近由于业务系统并发量比较大,所以在已有负载均衡的基础上,我们做了Nginx动静分离,但是系统访问后报错,经过F12(浏览器开发者模式)和Nginx日志分析,发现请求状态变成了405,故百度解释如下:问题原因: 请求的方式(get、post、delete)方法与后台规定的方式不符合。比如: 后台方...

08《Nginx 入门教程》Nginx 的 Http 模块介绍(中)

在前面介绍完 post-read、server-rewrite、find-config、rewrite 和 post-rewrite 阶段后,我们将继续学习 preaccess 和 access 两个阶段,中间会涉及部分模块,一同进行说明。1. preaccess 阶段在 preaccess 阶段在...

性能优化大揭秘:从代码到架构,全方位提升系统性能的实战技巧

在现代软件开发中,系统性能优化是一个永恒的话题。无论是移动应用、Web应用还是分布式系统,性能始终是用户体验、系统稳定性以及业务可扩展性的关键因素。性能瓶颈的存在不仅可能导致用户流失,还可能增加系统维护成本,甚至影响到业务的正常运行。因此,从代码层面到架构层面,全面的性能优化是每个技术人员必须掌握的...

linux系统安全,多人共用服务器,防止别人干‘坏事’

我们知道,在开发一个应用的过程中,需要涉及代码、操作系统、网络和数据库等多个方面。所以,只是了解代码安全肯定是不够的,我们还需要了解常见的基础环境和工具中的安全机制,学会通过正确地配置这些安全机制,来提升安全保障。谈到 Linux,我相信你每天都在使用 Linux 进行各种开发和运维操作。但是,大多...