Nginx 的 access_log 指令开启配置自定义日志教程!

日志就相当于软件系统的黑匣子!没有它,简直就是灾难!

你也很难讲清楚,功能和日志哪个更重要。功能服务于客户,用户等使用者,日志服务于我们自己,方便我们排查问题。所以我们要写好日志,记好日志!

Nginx  也提供了非常强大的日志功能。比如,我在这篇《昨天,我和黑客之间的一次攻防演练!》与黑客玩捉猫猫的游戏中就用到了 Nginx 的 access_log 日志。

没有日志怎么解决 BUG

在 Nginx 中,access_log 指令也存在于 ngx_http_log_module 模块中。

如果你未配置,access_log 日志也是默认开启的。access_log 的默认值如下所示:

access_log log/access.log combined

access_log 指令

access_log 指令的语法如下:

access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server=address[,parameter=value] [format];
access_log off;

access_log 指令的配置段支持: http, server, location, if in location, limit_except。

其中 access_log off; 代表关闭日志。通常我不建议这么做!

gzip 是压缩等级;buffer 可以设置内存缓存区的大小;flush 是保存在缓存区中的最长时间;combined 是一种默认的日志格式。

没有日志的系统就是在裸奔

下面是我的一个配置案例:

http {
  #access日志格式配置,具体参数不再细说,上面都已经说过了,自己对应一下即可
  log_format main '$remote_addr - $remote_user [$time_local] '
     'fwf[$http_x_forwarded_for] tip[$http_true_client_ip] '
     '$upstream_addr $upstream_response_time $request_time '
     '$geoip_country_code '
     '$http_host $request '
     '"$status" $body_bytes_sent "$http_referer" '
     '"$http_accept_language" "$http_user_agent" ';

  server {
    server_name ~^(www/.)?(.+)$;
    access_log logs/\-access.log main;
    error_log logs/\-error.log;
    location /srcache {
      #配置access log日志的存储位置及文件,注意:access.log文件是可以按日期进行分割的,方便查看及处理
      access_log  /home/serversoft/nginx/log/access.log  main;
    }
  }
}

需要注意的是 access_log 已开启,会非常的大。最终你查看,使用可能不方便。这时我推荐你看我的这篇文章《详解 nginx日志分割和 nginx 日志安全分割》,把 Nginx 的日志进行分割。

更多关于 access_log(访问日志)、log_format(日志格式)、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log 等指令的教程,请关注我的博客或公众号!

Nginx 的 access_log 指令开启配置自定义日志教程!

: » Nginx 的 access_log 指令开启配置自定义日志教程!

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/252800.html

(0)
上一篇 2022年5月4日
下一篇 2022年5月4日

相关推荐

发表回复

登录后才能评论