nginx入门2-日志配置详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao__zhen/article/details/86591909

nginx入门2-日志配置详解

在nginx的安装目录下面有一个logs,里存放的是nginx的一些日志文件。这些日志文件会在nginx每次重启都会根据配置文件检查这些日志文件是否存在,如果不存在会自动生成。
不同的虚拟主机可以有不同的日志配置

1、nginx日志配置详解

如果要使用日志记录的话需要在配置文件中做一些配置:
error_log logs/error.log; 错误日志的存放目录,及文件名称。
error_log logs/error.log notice; 日志等级
error_log logs/error.log info;

配置http请求的访问日志:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
access_log  logs/access.log  main;

日志格式设置(可自己定义日志格式):
$remote_addr与​$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过​$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

access_log logs/host.access.log main; #格式是 access_log 路径及文件名 日志保存格式!
access_log logs/host.access.404.log log404;
用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;

2. 日志备份

#!/bin/sh
BASE_DIR=/usr/local/nginx
BASE_FILE_NAME=access.log

CURRENT_PATH=$BASE_DIR/logs
BAK_PATH=$BASE_DIR/datalogs

CURRENT_FILE=$CURRENT_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

$BASE_DIR/sbin/nginx -s stop

mv $CURRENT_FILE $BAK_FILE

$BASE_DIR/sbin/nginx

然后使用crontab -e 命令输入*/1 * * * * sh /usr/local/nginx/sbin/log.sh

上面那条命令的作用是每隔一分钟执行一次备份。

猜你喜欢

转载自blog.csdn.net/zhao__zhen/article/details/86591909
今日推荐