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

作者: 逐暗者 | 来源:发表于2016-04-30 16:00 被阅读1034次

    nginx配置、日志备份

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

    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 //执行该命令设置定时任务
        添加如下配置,保存退出
        xml */1 * * * * sh /usr/local/nginx/sbin/log.sh //每分钟执行一次,具体的定时设置自行学习
        效果如图:

        nginx日志备份
        - 关闭定时任务
        > crontab -l //查看所有定时任务
        > crontab -r //删除所有定时任务
      • 日志备份到此结束了,请继续关注后续更新。。。

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

    相关文章

      网友评论

        本文标题:nginx系列2——nginx配置、日志备份

        本文链接:https://www.haomeiwen.com/subject/exykrttx.html