文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。
众所周知,线上如果出现事故我们通常都是查看日志去进行问题定位并且进行修复。使用好Nginx日志有利于我们线上进行修复异常问题。在Nginx中日志主要分为两种:accesslog(访问日志)和errorlog(错误日志)。通过查看accesslog我们可以查看用户ip,浏览器信息及请求时间等信息,通过查看errorlog我们可以查看线上出错的具体信息,可以帮助我们定位异常的原因。本篇文章主要带领大家详细了解Nginx如何配置日志。本文将会涉及到的日志配置指令:
- access_log
- log_format
- openlogfile_cache
- lognotfound
- log_subrequest
- rewrite_log
- error_log
access_log指令
首先,我们可以先看看accesslog指令。accesslog命令可以配置访问日志。我们可以先看下access_log指令的语法结构:
- access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志
- access_log off; # 关闭访问日志
我们先来看看语法结构中的参数的含义:
- path: 指定日志的存放位置
- format: 指定日志的格式,非必填,默认为预定义的combined
- buffer:指定日志写入时的缓存大小,非必填,默认64k
- gzip: 日志写入前先进行压缩
- flush: 设置缓存的有效期
- if: 设置条件判断,当天剑成立时才会写入日志
- off: 值为off表示不开启日志,值为on表示开启日志
accesslog指令可以使用于http根节点,虚拟服务器server节点,上下文配置location以及limitexcept中。无法在其他作用域使用accesslog指令,否则Nginx会报错。我们可以看一个简单的配置accesslog的小例子ÿ