nginx日誌相關優化安全
阿新 • • 發佈:2018-09-02
健康 nginx app script ted edi rontab reat oca
一、編寫腳本實現nginx access日誌輪詢
配置日誌切割腳本,如下:
[root@nginx shell]# cat cut_nginx_log.sh #!/bin/bash #Author:Mr.Ding #Created Time:2018-08-27 07:19:30 #Name:cut_nginx_log.sh #Description: Dateformat=`date +%Y%m%d` Basedir="/application/nginx" Nginxlogdir="$Basedir/logs" Logname="access_dmtest1" [ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1 [ -f ${Logname}.log ] || exit 1 /bin/mv ${Logname}.log ${Dateformat}_${Logname}.log #將日誌按日期改成前一天的名稱; #$Basedir/sbin/nginx -s reload systemctl reload nginx #重新加載nginx使得觸發從新生成訪問日誌文件;
腳本實現切割nginx的思想為將正在寫入的nginx日誌(access_dmtest1.log)改名為帶日期的格式文件(20180827_access_dmtest1.log),然後平滑重新加載nginx,生成新的nginx日誌(access_dmtest1.log)。
把腳本加入計劃任務:
[root@nginx shell]# cat >>/var/spool/cron/root << EOF > #cut ngixn access log by dm 2018-8-27 > 00 00 * * * /bin/sh /server/scripts/shell/cut_nginx_log.sh >/dev/null 2&1 > EOF [root@nginx shell]# crontab -l #time sync by dm at 2018-8-20 */5 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null 2>$1 #cut ngixn access log by dm 2018-8-27 00 00 * * * /bin/sh /server/scripts/shell/cut_nginx_log.sh >/dev/null 2&1
最終日誌切割效果如下:
[root@nginx logs]# ll 總用量 32 -rw-r--r-- 1 root root 0 8月 27 07:35 20180827_access_dmtest1.log -rw-r--r-- 1 root root 0 8月 27 07:35 access_dmtest1.log -rw-r--r-- 1 root root 14076 8月 27 04:41 access.log -rw-r--r-- 1 root root 10098 8月 27 06:36 error.log -rw-r--r-- 1 root root 5 8月 26 21:56 nginx.pid
二、不記錄不需要的訪問日誌
在實際工作中,對於負載均衡器健康節點檢查或某些特定文件(比如圖片、js、css)的日誌,一般不需要記錄下來,因為在統計PV是是按照頁面計算的,而且日誌寫入太頻繁會消耗大量磁盤I/O,降低服務的性能。
具體配置方法如下:
在server標簽內添加如下內容: location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$ { access_log off; }
三、訪問日誌的權限設置
假如日誌目錄為/application/nginx/logs/,者授權方法如下:
[root@nginx nginx]# chown -R root.root /application/nginx/logs/ [root@nginx nginx]# chmod -R 700 /application/nginx/logs/ [root@nginx nginx]# ll /application/nginx/logs/ 總用量 8592 -rwx------ 1 root root 8779792 9月 1 01:15 access.log -rwx------ 1 root root 1786 9月 2 08:36 dmtest.log -rwx------ 1 root root 6785 9月 2 08:36 error.log -rwx------ 1 root root 4 9月 2 13:25 nginx.pid
nginx日誌相關優化安全