懂ni 发表于 2018-11-16 07:43:49

nginx日志管理

log_format指令用来设置日志的记录格式语法:log_format name format 具体格式:log_format main '$http_x_forwarded_for-$remote_user[$time_local]' '"$request" $status $body_byte_sent' '"$http_referer" "$http_user_agent"'$http_xforwarded_for用于记录客户机真实ip地址$remote_user用于记录客户端用户名称$time_local用于记录访问时间和时区$request用于记录请求的URL与HTTP协议$status用于记录请求的状态,例如成功时状态为200,页面找不到时为404$body_bytes_sent用于记录发送给客户端的文件主体内容大小$http_referer用于记录是从哪个页面链接访问过来的$http_user_agent用于记录客户端浏览器的相关信息定义日志:access_log /data/log/$server_name.log main buffer=32kbuffer=32k:表示设置内存缓冲区的大小开启日志缓存:对于每一条日志记录,日志文件都将先打开文件,再写入日志记录,然后马上关闭,为了提高包含变量的日志文件存放路径的性能,可以使用open_log_file_cache指令来设置,格式如下:open_log_file_cache max=N |off该指令默认是禁止的,等同于:open_log_file_cache off;max: 设置缓存中的最大文件描述符数量inactive:设置一个时间,如果在设置的时间内没有使用此文件描述符,则自动删除此描述符min_users:在参数inactive指定的时间范围内,如果日志文件超过被使用的次数,则将该日志文件的描述符计入缓存,默认为10秒钟valid:设置多长时间检查一次,看日志文件路径与文件名是否仍然存在,默认60秒e.g:open_log_file_cache max=1000 inactive=20s min_users=2 valid=1m;日志分割:vim cut_nginx_log.sh#!/bin/bash# This script run at 00:00# The Nginx logs path.logs_path="/data/logs"mkdir -p ${logs_path}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/mv ${logs_path}/weblogs.log ${logs_path}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/weblogs_$(date -d "yesterday" +"%Y%m%d").logkill -USR1 `cat /usr/local/nginx/nginx.pid`crontab -e00 00 * * * root /data/cut_nginx_log.sh  linux交流群:22346652。欢迎Linux爱好者加入,一起学习,一起进步。

页: [1]
查看完整版本: nginx日志管理