nginx日志過大問題解決
1. 問題點
nginx默認的日志在logs/access.log,并且是一直累加寫入,時間長了就會非常大,占用過多的硬盤,如果強行刪除是很不友好的,需要重啟服務;
2. 文件分割

上圖文件已經(jīng)達到了十個G左右
處理的思路肯定是生成帶有日志的一系列的文件,然后保留一定的日志,這樣才是一個正常的思路;
log_format access-upstream '$time_iso8601|$request|$remote_addr|$upstream_response_time|$http_user_agent|$http_x_forwarded_for';
map $time_iso8601 $logdate {
'~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
default 'date-not-found';
}
access_log logs/access-$logdate.log ;
# access_log off; # 實在不需要的話,可以將其關閉(如心跳請求,會記錄日志)
上面代碼中主要使用到了map模塊和對應的語法:map指令使用ngx_http_map_module模塊提供的。默認情況下,nginx有加載這個模塊,除非人為的 --without-http_map_module。
ngx_http_map_module模塊可以創(chuàng)建變量,這些變量的值與另外的變量值相關聯(lián)。允許分類或者同時映射多個值到多個不同值并儲存到一個變量中,map指令用來創(chuàng)建變量,但是僅在變量被接受的時候執(zhí)行視圖映射操作,對于處理沒有引用變量的請求時,這個模塊并沒有性能上的缺失。
加上之后重新加載配置文件:
# 檢測配置是否正確 ./sbin/nginx -t #加載配置 ./sbin/nginx -s reload

觀察logs文件中已經(jīng)生成了當日的日志,這是可以清理掉之前老文件了(如果確定沒有用途的情況下),下一步就是做定時器,定時刪除過期的文件
3. 定時器定時刪除N天之前的日志
新建刪除腳本,假如保留30天日志
#!/bin/bash
# 指定日志文件夾路徑
LOG_DIR="/usr/local/nginx/logs"
# 獲取當前日期
CURRENT_DATE=$(date "+%Y-%m-%d")
# 計算 30 天前的日期
OLD_DATE=$(date -d "30 days ago" "+%Y-%m-%d")
# 遍歷日志文件夾中的文件
for logfile in "$LOG_DIR"/*; do
# 提取文件名中的日期部分
filename=$(basename "$logfile")
filedate=${filename#access-}
filedate=${filedate%.log}
# 如果文件的日期早于 OLD_DATE,則刪除該文件
if [[ "$filedate" < "$OLD_DATE" ]]; then
rm "$logfile"
fi
done
添加定時器
crontab -e
編輯并保存
0 0 * * * /usr/local/nginx/logs/cleanup_logs.sh
查看定時器
crontab -l
這樣每天凌晨會清理掉30天之前的日志文件;
到此這篇關于nginx日志過大問題解決的文章就介紹到這了,更多相關nginx日志過大內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Nginx Mirror模塊實現(xiàn)流量鏡像的示例代碼
在微服務與持續(xù)交付場景中,流量鏡像是評估新版本、壓測與采集數(shù)據(jù)的重要手段,本文講解如何使用 Nginx 原生的 mirror 模塊實現(xiàn)流量鏡像,感興趣的可以了解一下2025-12-12
Nginx使用limit_req_zone對同一IP訪問進行限流的方法
今天小編就為大家分享一篇Nginx使用limit_req_zone對同一IP訪問進行限流的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Nginx could not build the server_names_hash 錯誤的解決辦法
這篇文章主要介紹了Nginx could not build the server_names_hash 錯誤的解決辦法,需要的朋友可以參考下2014-03-03
詳解Nginx的超時keeplive_timeout配置步驟
Nginx 處理的每個請求均有相應的超時設置,本文主要介紹了Nginx的超時keeplive_timeout配置步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05

