centos中nginx按日期自动分割访问日志

php中文网
发布: 2016-07-29 08:33:12
原创
1324人浏览过

Web 访问日志 (access_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。
一条典型的Web访问日志如下:

<code><span>192.168</span>.<span>50.195</span> - - [<span>17</span>/Jun/<span>2016</span>:<span>23</span>:<span>59</span>:<span>12</span> +<span>0800</span>] <span>"GET / HTTP/1.1"</span><span>304</span><span>0</span><span>"-"</span><span>"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"</span><span>"-"</span></code>
登录后复制

1、 要解决问题:

当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。

注意:使用第三方免费的日志分析工具-日志宝,可以上传nginx、apache、iis的日志文件,它们帮助分析网站安全方面。毕竟专攻,更加专业。日志宝对上传的文件也是做了大小限制的,不超过50m。

2、日志自动切割脚本编写

nignx没有自动分开文件存储日志的机制。由于nginx它不会帮你自动分文件保存。所以,需要自己编写脚本来实现。

<code><span>#!/bin/bash</span><span># Program:</span><span>#     Auto cut nginx log script.</span><span># 2016/6/15  luozhibo </span><span># nginx日志路径 /var/log/nginx/</span>
LOGS_PATH=/var/log/nginx
TODAY=$(date <span>-d</span><span>'today'</span> +%Y-%m-%d)
<span>#echo $TODAY</span><span># 移动日志并改名</span>
mv <span>${LOGS_PATH}</span>/error.log <span>${LOGS_PATH}</span>/error_<span>${TODAY}</span>.log
mv <span>${LOGS_PATH}</span>/access.log <span>${LOGS_PATH}</span>/access_<span>${TODAY}</span>.log

<span># 向nginx主进程发送重新打开日志文件的信号</span>
kill -USR1 $(cat /var/run/nginx.pid)
</code>
登录后复制

上面shell脚本的原理是:

先把以前的日志文件移动重命名,目的是就是备份。

3、crontab自动任务配置

问问小宇宙
问问小宇宙

问问小宇宙是小宇宙团队出品的播客AI检索工具

问问小宇宙 77
查看详情 问问小宇宙

直接编写vim /etc/crontab 或者 直接通过echo写入自动任务

<code>echo '<span>59</span><span>23</span> * * * root /var/<span>log</span>/nginx/nginx_log_division.sh >> /var/<span>log</span>/nginx/cutnginxlog.<span>log</span><span>2</span>>&<span>1</span>' >> /etc/crontab</code>
登录后复制

每晚23:59分自动执行计划任务
以root用户身份运行
将自动任务的执行日志(错误和正确的日志)自动写入cutnginxlog.log
“命令 >> 2>&1” 表示以追加方式将正确输出和错误输出都保存到同一个文件中

4、参考链接:

nginx自动切割访问日志

以日期为文件名来存储nginx日志

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了 centos中nginx按日期自动分割访问日志,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号