nginx系列2——nginx配置、日志备份

nginx配置、日志备份

nginx的配置文件默认位于/usr/local/nginx/conf/下的nginx.conf

02143235_HCit.png
nginx配置文件位置
  • 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
    • 脚本授权

      chmod 755 log.sh

    • 创建定时任务调度,并执行(保存退出即可自动开始执行定时任务
      crontab -e //执行该命令设置定时任务
      添加如下配置,保存退出
      */1 * * * * sh /usr/local/nginx/sbin/log.sh //每分钟执行一次,具体的定时设置自行学习
      效果如图:
      02143236_N3fp.png
      nginx日志备份
    • 关闭定时任务

      crontab -l //查看所有定时任务
      crontab -r //删除所有定时任务

    • 日志备份到此结束了,请继续关注后续更新。。。

作者:逐暗者(转载请注明出处)

转载于:https://my.oschina.net/u/3135352/blog/1113988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值