本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
日志就相当于软件系统的黑匣子!没有它,简直就是灾难!
你也很难讲清楚,功能和日志哪个更重要。功能服务于客户,用户等使用者,日志服务于我们自己,方便我们排查问题。所以我们要写好日志,记好日志!
Nginx 也提供了非常强大的日志功能。比如,我在这篇《昨天,我和黑客之间的一次攻防演练!》与黑客玩捉猫猫的游戏中就用到了 Nginx 的 access_log 日志。
在 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)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Nginx 的 access_log 指令开启配置自定义日志教程!