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

NDIS herman 408浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

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

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

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/$2-access.log main;
    error_log logs/$2-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 等指令的教程,请关注我的博客或公众号!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » Nginx 的 access_log 指令开启配置自定义日志教程!