nginx配置、日志备份
nginx
的配置文件默认位于/usr/local/nginx/conf/
下的nginx.conf
- nginx简单的配置讲解
更详细的其他配置请关注后续更新。。。#开启进程数 <=CPU数 worker_processes 1; #自定义错误日志保存位置,全局设置,默认logs/error.log #error_log logs/error.log; #每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024 events { worker_connections 1024; } # http { #文件扩展名与文件类型映射表 include mime.types; #默认文件类型 default_type application/octet-stream; #自定义日志文件输出格式 全局设置 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #自定义全局请求日志保存位置,全局设置,默认logs/access.log, 定义格式:文件存储位置 + 日志输出格式 #access_log logs/access.log main; #打开发送文件 sendfile on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 65; #打开gzip压缩 #gzip on; #配置虚拟主机,基于域名、ip和端口,可以配置多个server server { #监听端口,可以是ip:port 或者 port listen 80; #监听域名,可以是ip或者域名,server_name有三种匹配方式:精准匹配(www.domain.com)、通配符匹配(*.domain.com 、www.*)、正则表达式匹配(~^(?.+)\.domain\.com$) server_name localhost; #自定义请求日志,局部,当前server有效 #access_log logs/host.access.log main; #错误页面及其返回地址 error_page 500 502 503 504 /50x.html; #请求匹配,同样有精准(= /index.html)、模糊(~ index)、正则,允许配置多个location location / { #返回根路径地址(相对路径:相对于/usr/local/nginx/) root html; #默认主页 index index.html index.htm; } # location /html { root html; index index.html index.htm; } # } # }
- 日志备份
日志对应开发和运维都是至关重要的,这时就会存在一个问题,如果所有日志都写到一个文件中,查看分析日志时就极其不方便了,因此我们需要对日志进行切割和分析处理,以周\天\小时等等单位节点对日志进行切割处理,这样查看分析日志就很方便了,以此可以采用定时任务的手段去备份管理日志。
- 日志备份具体实现
-
编写分析日志切分脚本
- 备份日志文件名组装
- 关闭
nginx
- 日志文件移动
- 启动
nginx
mkdir /usr/local/nginx/back_up_logs
//创建存放备份文件目录
vim /usr/local/nginx/sbin/log.sh
//创建脚本log.sh
脚本shell
如下:#!/bin/sh #设置基路径 BASE_DIR=/usr/local/nginx #要切割备份的日志文件名 BASE_FILE_NAME=access.log #日志路径 LOG_PATH=$BASE_DIR/logs #日志切割后备份路径 BAK_PATH=$BASE_DIR/back_up_logs #切割日志文件 LOG_FILE=$LOG_PATH/$BASE_FILE_NAME #获取时间 BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M` //为了测试效果,以分钟为单位,故每分钟备份一次,具体按照实际需求设置 #备份文件 BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME echo $BAK_FILE #关闭nginx $BASE_DIR/sbin/nginx -s stop #移动切割文件 mv $LOG_FILE $BAK_FILE #启动nginx $BASE_DIR/sbin/nginx
-
脚本授权
nginx日志备份chmod 755 log.sh
- 创建定时任务调度,并执行(保存退出即可自动开始执行定时任务)
crontab -e
//执行该命令设置定时任务
添加如下配置,保存退出
xml */1 * * * * sh /usr/local/nginx/sbin/log.sh //每分钟执行一次,具体的定时设置自行学习
效果如图:
- 关闭定时任务
>crontab -l
//查看所有定时任务
>crontab -r
//删除所有定时任务 -
日志备份到此结束了,请继续关注后续更新。。。
-
作者:逐暗者(转载请注明出处)
网友评论