nginx入门2-日志配置详解

一时失言乱红尘 2022-03-24 15:05 318阅读 0赞

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请求的访问日志:

  1. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  2. '$status $body_bytes_sent "$http_referer" '
  3. '"$http_user_agent" "$http_x_forwarded_for"';
  4. access_log logs/access.log main;
  5. 日志格式设置(可自己定义日志格式):
  6. $remote_addr与​$http_x_forwarded_for用以记录客户端的ip地址;
  7. $remote_user:用来记录客户端用户名称;
  8. $time_local 用来记录访问时间与时区;
  9. $request 用来记录请求的urlhttp协议;
  10. $status 用来记录请求状态;成功是200
  11. $body_bytes_sent :记录发送给客户端文件主体内容大小;
  12. $http_referer:用来记录从那个页面链接访问过来的;
  13. $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. 日志备份

  1. #!/bin/sh
  2. BASE_DIR=/usr/local/nginx
  3. BASE_FILE_NAME=access.log
  4. CURRENT_PATH=$BASE_DIR/logs
  5. BAK_PATH=$BASE_DIR/datalogs
  6. CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME
  7. BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M`
  8. BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
  9. echo $BAK_FILE
  10. $BASE_DIR/sbin/nginx -s stop
  11. mv $CURRENT_FILE $BAK_FILE
  12. $BASE_DIR/sbin/nginx

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

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

发表评论

表情:
评论列表 (有 0 条评论,318人围观)

还没有评论,来说两句吧...

相关阅读

    相关 nginx 日志配置

    1、nginx 日志介绍 `nginx` 有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志, 所需日志模块 `ngx_http_log_module`

    相关 nginx配置详解

    [Nginx配置详解][Nginx] 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源