nginx日志配置、nginx日志分割

发布时间:2021-01-01编辑:脚本学堂
本文介绍下,nginx日志配置的相关内容,及nginx日志分割的shell脚本,有需要的朋友参考下。

nginx中,日志的配置很简单,有各种好用的选项,拿来使用即可。

一,nginx日志管理
1,log_format指令用来设置日志的记录格式,语法如下:
log_format name format (format ....)
  具体日志格式如下:
 

复制代码 代码示例:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';

  $http_x_forwarded_for 和 $remote_user用于记录IP地址
  $remote_user 用来记录远程客户端用户名称
  $time_local  用来记录访问时间及地区
  $request 用于记录请求的URL与HTTP协议
  $status  用于记录请求的状态,例如状态为200,页面找不到时为404
  $body_bytes_sent 用于记录发送给客户端的文件主体内容大小
  $http_referer用于记录是从哪个页面链接访问过来的
  $http_user_agent 用于记录客户端浏览器的相关信息
 
2,开启日志打开缓存
为了提高包含变量的日志文件存放路径的性能,可以使用:
open_log_file_cache指令来设置,格式如下:
open_log_file_cache max=N [inactive=time][min_use=N][valid=time] |off 该指令默认是禁止的,等同于: open_log_file_cache off;
max:设置缓存中的最大文件描述数量
inactive:  设置一个时间,如果在设置的时间内没有使用此文件描述,则自动删除此描述
min_uses:   在参数inactive指定的时间范围内,如果日志文件超过使用次数,则该日志文件的描述计入缓存,默认为10秒钟
valid   :设置多长时间检查一次,看日志文件路径与文件名是否仍然存在,默认60秒。
例子:open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m  

二,Nginx 日志分割
 

复制代码 代码示例:
#vim logs.sh
#!/bin/bash
#Nginx日志存放位置
logs_path="/usr/local/nginx/logs"
#将日志改名
mkdir -p $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" + "%m")/
 mv $(logs_path)access.log $(logs_path)$(date -d "yesterday" +"%Y" )/$(date -d "yesterday" + "%m" )/access_$(date -d "yesterday" + "%Y%m%d").log
#重启Nginx服务
 service nginx reload
#创建计划任务
#crontab -l
01 01 * * * /bin/bash/logs.sh

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
Nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本
每天自动分割Nginx日志文件的Shell脚本
修改nginx访问日志的时间格式的方法
Nginx日志中过滤关键字的写法
nginx 日志分析实例