nginx日志相关优化安全
Posted 我的城市没有海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx日志相关优化安全相关的知识,希望对你有一定的参考价值。
一、编写脚本实现nginx access日志轮询
配置日志切割脚本,如下:
[[email protected] 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)。
把脚本加入计划任务:
[[email protected] 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 [[email protected] 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
最终日志切割效果如下:
[[email protected] 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/,者授权方法如下:
[[email protected] nginx]# chown -R root.root /application/nginx/logs/ [[email protected] nginx]# chmod -R 700 /application/nginx/logs/ [[email protected] 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日志相关优化安全的主要内容,如果未能解决你的问题,请参考以下文章
09Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域
Nginx服务优化------(隐藏版本+缓存+修改用户与组+日志分割+进程超时)