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