nginx 配置显示http请求时间+日志按日期自动切割备份+加入黑名单

1.配置nginx里面的配置文件nginx.conf,按照如图所示开启记录http请求时间

nginx 配置显示http请求时间+日志按日期自动切割备份+加入黑名单

保存配置退出后重启nginx

然后访问nginx,打开logs目录下的access.log文件会发现多了一列(单位为秒),如下图红框中所示:

nginx 配置显示http请求时间+日志按日期自动切割备份+加入黑名单


2.配置日志自动切割且备份功能

写一个脚本如下

# /bin/bash
# 日志保存位置
base_path='/usr/local/nginx/logs'
# 获取当前年信息和月信息
log_path=$(date -d yesterday +"%Y%m")
# 获取昨天的日信息
day=$(date -d yesterday +"%d")
# 按年月创建文件夹
mkdir -p $base_path/$log_path
# 备份昨天的日志到当月的文件夹
mv $base_path/access.log $base_path/$log_path/access_$day.log
# 输出备份日志文件名
# echo $base_path/$log_path/access_$day.log
# 通过Nginx信号量控制重读日志
kill -USR1 `cat /opt/nginx/logs/nginx.pid`

chmod u+x split_log.sh --给脚本可执行权限

加入定时任务定期执行

crontab -e  编辑定时任务添加如下代码

# 每天0时1分进行日志分割(建议在02-04点之间,系统负载小)
01 00 * * * /usr/local/nginx/logs/split_log.sh

/etc/init.d/crond reload  --重新加载确保定时任务生效


3.设置黑名单功能

在nginx配置文件夹conf下面创建blacklist.conf文件,里面写入你要禁止登陆的IP地址,如下图所示:

nginx 配置显示http请求时间+日志按日期自动切割备份+加入黑名单

在http或者server模块引入

include blacklist.conf ;如下图所示:

nginx 配置显示http请求时间+日志按日期自动切割备份+加入黑名单

需要重启服务器 ./nginx -s reload; 即可生效