1. 程式人生 > >nginx日誌相關優化安全

nginx日誌相關優化安全

健康 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日誌相關優化安全