Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多。
上周对Centos中跑的Nginx做了优化,重新设置了图片、JS、CSS的缓存时间,关闭了一些不需要的日志记录等,我侧重讲日志的处理,因为我觉得这个是相当有必要的。刚开始一直认为日志没有必要处理,也就那么几M的东西,当我查看日志大小的时候我瞠目了,我的日志居然有几百M的级别了,当下就决定对日志进行每天必要的处理操作。
为什么要切割日志?一般Nginx安装好后有些人会打开日志记录有些人会关闭日志记录,打开日志记录的人一般都会把架设在Nginx上的所有网站日志都存在同一个文件里(比如我存在access.log日志文件里),这样日积月累所有网站的访问记录就会把日志文件越积越大,当需要查看日志文件的时候一看就是一大串,不方便查找。现在,如果我把每天的日志文件分割开来用相应的日期标识出来这样就大大方便查找了。(我是建议打开日志记录,日志记录里面存放着很多有用的东西。比如:浏览器名称,可以方便你对网站的排版做出调整;IP地址,如果网站收到攻击,你就可以查到那个IP地址。)
下面开始详细步骤:
编写shell程序
某种情况下会设置多个子域名,因此会产生多个日志文件,像我这类喜欢整齐的人会设置多个日志文件,把每个域名的日志都分开放。下面这个shell程序是多域名处理。
下面是示例,对以下三个网站的日志切割(日志文件名自己命名):
http://www.1991s.com 对应日志 blog.log
http://demo.1991s.com 对应日志 demo.log
http://happy.1991s.com 对应日志 happy.log
# !/bin/bash
# 你的日志文件存放目录
logs_path="/home/logs/"
# 日志文件的名字,多个需要空格隔开
logs_names=(blog demo happy)
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday"+"%m")/
num=${#logs_names[@]}
for((i=0;i<num;i++));do
mv ${logs_path}${logs_names[i]}.log ${logs_path}$(date -d "yesterday"+"%Y")/$(date -d "yesterday"+"%m")/${logs_names[i]}_$(date -d "yesterday"+"%Y%m%d").log
done
#pid的位置,自己查找
kill -USR1 `cat /usr/local/nginx/nginx.pid`
设置crontab,每天定时切割
首先需要确定你的服务器有没有安装crontab的服务,输入crontab -e命令,有反应就安装了。
如果没有安装,运行yum install vixie-cron 一键安装。
输入crontab -e命令,输入下面的内容:
1、00 00意思为00分00点,也就是凌晨0点,后面“ * * * ”为“ 日 月 年 ”无需定义
2、” /home/logs/cut_nginx_log.sh “为你的shell的路径。
00 00 * * * /bin/bash /home/logs/cut_nginx_log.sh
OK ! 大功告成,每天的0时就会自动完成日志的切割并存在相应的以日期命名的目录中。
注解:
1.只在Centos下测试,其他linux环境设置略有不同。
2.开启shell程序的775权限,否则可能导致不能运行。
相关推荐
windows 下nginx 日志切割 结合windows任务计划,实现每天备份日志,并reopen nginx
Nginx日志切割脚本
**Nginx日志切割** Nginx默认将访问日志记录在`/var/log/nginx/access.log`,错误日志记录在`/var/log/nginx/error.log`。日志切割是为了便于日志管理和存储,避免单个日志文件过大。以下是一个简单的日志切割方案...
nginx日志切割
【Nginx日志切割详解】 在Web服务器的日常运维中,日志管理是一项至关重要的任务。Nginx作为一款高性能的HTTP和反向代理服务器,其日志记录功能可以帮助我们监控服务器状态、分析访问流量、排查问题等。然而,随着...
nginx日志自动定时切割及清除脚本
windows nginx 按天切割日志
利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用
### Nginx 配置详解:负载均衡、动静分离、请求日志打印、日志切割与管理 #### 一、Nginx配置负载均衡 **负载均衡**是Nginx的一项核心功能,它能帮助我们将客户端请求分发到不同的服务器上,从而提高系统的稳定性...
本文将对Nginx日志配置及日志切割进行详细介绍。 首先,Nginx提供了多种日志配置指令,这些指令可以定义日志记录的行为和格式。以下是两个核心的指令: 1. access_log:此指令用于开启或关闭访问日志,并设置日志...
nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。
Nginx日志切割-按小时序言原理Shell脚本验证脚本定时配置 序言 最近调试接口,做ip授权,涉及到了查看nginx日志,但是由于每日数据量太大,导致从现场导出日志过于费劲,时间过于漫长,所以想到了给日志做时间切割! ...
### Nginx日志切割脚本详解 #### 引言 在运维工作中,Nginx作为一款高性能的HTTP服务器及反向代理服务器,在处理大量访问请求时会产生庞大的日志文件。这些日志文件不仅占用大量的磁盘空间,还会影响系统的性能,...
每天让NGINX日志自动的生成日志,不至于日志都写在一个文件
【Crontab+Shell做Nginx日志切割脚本】是Linux系统中常见的日志管理方式,主要用于解决日志文件过大导致的问题。Nginx作为一款广泛应用的Web服务器,其产生的日志文件可能会随着时间积累变得非常庞大,占用大量磁盘...
【知识点详解】 1. **日志管理**:在IT运维中,日志管理是一项重要的...通过以上步骤,我们能够理解如何利用Shell脚本实现Nginx日志的自动切割、归档和清理,从而有效管理日志文件,提高系统的维护效率和资源利用率。
: 为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储...
1、添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/logrotate.d/nginx #编辑脚本 /usr/local/nginx/logs/*.log /usr/local/nginx/logs/nginx_logs/*.log{ missingok dateext notifem
**Nginx日志文件切割**是Web服务器管理中的一个重要环节,主要目的是为了定期归档、管理和优化存储空间。在高访问量的网站环境中,Nginx的日志文件可能会迅速增长,如果不进行适当的切割,可能会导致硬盘空间耗尽,...