欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx訪問日志切割的3種實現(xiàn)方法

 更新時間:2023年08月09日 09:52:33   作者:迷失在IT路上  
這篇文章主要給大家介紹了關于Nginx訪問日志切割的3種實現(xiàn)方法,隨著訪問量的增長,日志文件會越來越大,時間長既會影響訪問的速度,也會占用一部分磁盤空間,這時候就需要日志切割了,需要的朋友可以參考下

1. 使用 shell 腳本實現(xiàn)

接下來,很簡單,shell 腳本來了

#/bin/bash 
# author  jiangexing
set -e   #腳本執(zhí)行,遇到錯就退出,不再往下執(zhí)行
sleep 1 # 配合定時任務,0 點過一秒再開始切割任務
yesterday=$(date -d 'yesterday' +%Y-%m-%d)  #取得服務器當前時間
ng_logs_dir='/var/log/nginx'  #nginx 日志文件目錄
if [ -d $ng_logs_dir ];then    #判斷日志目錄是否存在
  cd $ng_logs_dir 
  mv access.log  access_${yesterday}.log  #通過 mv 命令將日志移動到分割后的日志,error 日志我一般不做切割
  kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)  #發(fā)送 kill -USR1 信號給 Nginx 的主進程號,讓 Nginx 重新生成一個新的日志文件
  sleep 1
  tar -czf  access_${yesterday}.log.tar.gz access_${yesterday}.log  #把舊的日志打成壓縮包
  rm -f  access_${yesterday}.log  #已有壓縮包,刪除壓縮前的日志
else
  echo "日志目錄不存在,請檢查"
  exit 0
fi

這已經達到了我們想要的效果了,點個贊

當然還有最重要的一步,那就是要做好定時任務

crontable -l
0 0 * * *  /usr/local/nginx/scripts/split.sh

2. 使用 logrotate 來實現(xiàn)

這種切割的方法,一開始我是不知道的,因為我之前的 nginx 都是使用源碼安裝的,在一次偶然的情況下,使用了 yum 安裝的方式安裝了 nginx,然后發(fā)現(xiàn) nginx 的日志自動切割和壓縮了,這就讓我要去一探究竟了

后來發(fā)現(xiàn),這個切割功能是由 logrotate 來實現(xiàn)的,接下來我們一起來看看看

如果系統(tǒng)沒有安裝logrotate 可以使用 

sudo yum install logrotate -y

進行安裝

配置 logrotate

接下來我們就來配置 nginx 切割的配置文件,我的 nginx 日志路徑在/var/log/nginx

我們在 /etc/logrotate.d/ 目錄下新建一個 nginx 的文件

vim nginx
#########以下為文件配置內容##############
/var/log/nginx/*log   # 這里也可以寫明對具體哪幾個文件進行切割
{
    su root root
    daily
    dateext
    missingok
    rotate 7
    notifempty
    compress
    create 644 www www
    sharedscripts
    postrotate
        [ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    endscript
}
# 我們也可以先手 手動執(zhí)行一下切割試試看看效果
logrotate -f /etc/logrotate.d/nginx

查看執(zhí)行后的結果:

沒錯,這就是我們想要的 ,這種方式和第一種還是比較像的。

logrotate 配置項詳解

logrotate 的默認配置文件是 /etc/logrotate.conf。主要參數(shù):

  • daily–>指定轉儲周期為每天
  • weekly–>指定轉儲周期為每周
  • monthly–>指定轉儲周期為每月
  • dateext–>在文件末尾添加當前日期
  • compress–>通過 gzip 壓縮轉儲以后的日志
  • nocompress–>不需要壓縮時,用這個參數(shù)
  • copytruncate–>先把日志內容復制到舊日志文件后才清除日志文件內容,可以保證日志記錄的連續(xù)性
  • nocopytruncate–>備份日志文件但是不截斷
  • create mode owner group–>轉儲文件,使用指定的文件模式創(chuàng)建新的日志文件
  • nocreate–>不建立新的日志文件
  • delaycompress 和 compress –>一起使用時,轉儲的日志文件到下一次轉儲時才壓縮
  • nodelaycompress–>覆蓋 delaycompress 選項,轉儲同時壓縮。
  • errors address–>專儲時的錯誤信息發(fā)送到指定的 Email 地址
  • ifempty–>即使是空文件也轉儲,這個是 logrotate 的缺省選項。
  • notifempty–>如果是空文件的話,不轉儲
  • mail address–>把轉儲的日志文件發(fā)送到指定的 E-mail 地址
  • nomail–>轉儲時不發(fā)送日志文件
  • olddir directory–>轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統(tǒng)
  • noolddir–>轉儲后的日志文件和當前日志文件放在同一個目錄下
  • rotate count–>指定日志文件刪除之前轉儲的次數(shù),0 指沒有備份,5 指保留 5 個備份
  • tabootext [+] list 讓 logrotate –> 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~
  • size–> size 當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (缺省)以及 KB (sizek)或者 MB (sizem).
  • prerotate/endscript –>在轉儲以前需要執(zhí)行的命令可以放入這個對,這兩個關鍵字必須單獨成行
  • postrotate/endscript –>在轉儲以后需要執(zhí)行的命令可以放入這個對,這兩個關鍵字必須單獨成行

3. 高級用法–使用 nginx 本身來實現(xiàn)

當 nginx 在容器里,把 nginx 日志掛載出來的時候,我們發(fā)現(xiàn)就不適合再使用 kill -USR1 的方式去分割日志

這時候當然就需要從 nginx 本身配置去解決這個問題了,我們都知道訪問日志里面都有一個時間相關的字段,如果我們把這個時間撈出來,這個問題就解決了

在對用的 nginx 配置文件中添加如下配置

     if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
            set $year $1;
            set $month $2;
            set $day $3;
     }
     access_log /var/log/nginx/${year}_${month}_${day}_access.log json;

這個的日志切割可以達到秒級,用法都是一樣的,去正則匹配到時間戳就好了。nginx 內置的變量有很多,列如 ${server_name} 這些變量都是可以用來命名日志

當然如果我們需要壓縮,就寫個對應的定時任務去做壓縮就好了

總結

到此這篇關于Nginx訪問日志切割的3種實現(xiàn)方法的文章就介紹到這了,更多相關Nginx訪問日志切割內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • nginx配置訪問圖片路徑以及html靜態(tài)頁面的調取方法

    nginx配置訪問圖片路徑以及html靜態(tài)頁面的調取方法

    這篇文章主要介紹了詳解nginx配置訪問圖片路徑以及html靜態(tài)頁面的調取方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。
    2016-12-12
  • Nginx+keepalived實現(xiàn)七層的負載均衡的高可用(最新解決方案)

    Nginx+keepalived實現(xiàn)七層的負載均衡的高可用(最新解決方案)

    這篇文章主要介紹了Nginx+keepalived實現(xiàn)七層的負載均衡的高可用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Nginx 啟動腳本/重啟腳本代碼

    Nginx 啟動腳本/重啟腳本代碼

    Nginx 啟動腳本 重啟腳本,學習使用centos配置服務器的朋友可以參考下。
    2010-10-10
  • Mac上搭建nginx+rtmp直播服務器的步驟詳解

    Mac上搭建nginx+rtmp直播服務器的步驟詳解

    最近的直播很火,所以這篇文章跟大家分享了在Mac上搭建nginx+rtmp直播服務器的步驟,文章通過一步步圖文介紹的很詳細,有需要的朋友們可以參考借鑒。
    2016-09-09
  • Nginx 只允許 www 域名訪問并禁止裸域名訪問的實現(xiàn)步驟

    Nginx 只允許 www 域名訪問并禁止裸域名訪問的實現(xiàn)步驟

    通過Nginx配置,可以設定僅允許www域名訪問,禁止或重定向裸域名,提升網(wǎng)站品牌統(tǒng)一性及用戶體驗,設置包括創(chuàng)建針對www的虛擬主機,禁止裸域名訪問,并可選進行裸域名到www的301重定向,完成后,重啟Nginx服務器使配置生效
    2024-10-10
  • Nginx常用技巧使用實例匯總

    Nginx常用技巧使用實例匯總

    這篇文章主要介紹了Nginx常用技巧使用實例匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 云服務器使用寶塔搭建Python環(huán)境,運行django程序

    云服務器使用寶塔搭建Python環(huán)境,運行django程序

    本文詳細講解了在云服務器使用寶塔搭建Python環(huán)境,運行django程序的方法。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • Nginx ssi合并頁面的具體實現(xiàn)

    Nginx ssi合并頁面的具體實現(xiàn)

    nginx的ssi模塊是一種類似于ASP的基于服務器的網(wǎng)頁制作技術,本文主要介紹了Nginx ssi合并頁面的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 詳解Nginx搭建圖片服務器過程

    詳解Nginx搭建圖片服務器過程

    本篇文章給大家圖文詳細講解了Nginx搭建圖片服務器的過程以及中間遇到的問題處理方法,一起跟著小編學習下吧。
    2017-12-12
  • Nginx實現(xiàn)前端灰度發(fā)布

    Nginx實現(xiàn)前端灰度發(fā)布

    灰度發(fā)布是一種重要的策略,它允許我們在不影響所有用戶的情況下,逐步推出新功能或更新,通過灰度發(fā)布,我們可以測試新版本的穩(wěn)定性和性能,下面就來介紹一下前端灰度發(fā)布的使用,感興趣的可以了解一下
    2025-03-03

最新評論