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

原文地址:https://www.cnblogs.com/Mr-Ding/p/9573620.html

时间: 2024-11-09 10:16:00

nginx日志相关优化安全的相关文章

nginx 日志相关配置总结

设置位于nginx.conf: log_format  main  '$server_name $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $upstream_addr $request_time $

nginx日志相关的查询

IP相关统计 统计IP访问量(独立ip访问数量) awk '{print $1}' access.log | sort -n | uniq | wc -l 查看某一时间段的IP访问量(4-5点) grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l 查看访问最频繁的前100个IP awk '{print $1}' access.log | sort -n |u

web网站集群之企业级Nginx Web服务优化详解

1. 隐藏nginx版本信息优化(安全优化) 官方参考链接:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens Syntax:  server_tokens on | off | build | string; Default: server_tokens on;(默认显示nginx服务版本) Context: http, server, location 实践配置: server { listen     

web网站集群之企业级Nginx Web服务优化详解(二)

12 配置Nginx gzip压缩实现性能优化 100k ---- 1s 90k 100k ---- 5s 10k gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 7; gzip_types text/css text/xml application/javascripts; gzip_vary on; Syntax: gzip_buffers number size;

nginx日志配置

日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_subrequest.rewrite_log.error_log.nginx有一个非常灵活的日志记录模式.每个级别的配置可以有各自独立的访问日志.日志格式通过log_format命令来定义.ngx_http_log_module是用来定义请求日志格式的. 1. access_log指令 语法: access_l

【转】纯手工玩转 Nginx 日志

Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 log_format . 默认的格式: access_log /data/logs/nginx-access.log; log_format old '$remote_addr [$time_local] $status $request_time $body_bytes_sent ' '"$re

Nginx 日志分享

Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 log_format . 默认的格式: access_log /data/logs/nginx-access.log; log_format old '$remote_addr [$time_local] $status $request_time $body_bytes_sent ' '"$re

九爷带你了解 nginx 日志配置指令详解

nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_found.log_subrequest.rewrite_log.error_log. nginx有一个非常灵活的日志记录模式.每个级别的配置可以有各自独立的访问日志.日志格式通过log_format命令来定义.ngx_http_log_module是用来定义请求日志格式的. 1. access_l

nginx(四)初识nginx日志文件

nginx 日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,通俗的理解就是先用log_format来定义自己想用的日志格式,然后在用zccess_log定义虚拟主机时或全局日志时 在把定义的log_format 跟在后面: 1.log_format 格式 log_format       name( 格式名字)  格式样式(即想要得到什么样的日志内容) 默认的示例: log_format     m