超详细!Nginx 日志配置实践

超详细!Nginx 日志配置实践
最新回答
蓝莓格格巫

2026-10-19 16:58:26

Nginx日志对于统计、系统服务排错很有用。

Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我们定位错误的原因。

本文将详细描述一下如何配置Nginx日志。

设置access_log指令用于记录客户端的请求。客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。具体要记录哪些信息,可以通过log_format指令定义。

语法上,还有一个特殊的值off,如果指定了该值,当前作用域下的所有的请求日志都被关闭。

access_log指令的作用域分别有http,server,location,limit_except。在这几个作用域外使用该指令,Nginx会报错。

接下来是access_log指令的基本语法和参数的含义,以及一些例子加深理解。

基本用法包括指定日志的写入路径,日志格式使用默认的combined,或者指定特定的日志格式。

使用log_format自定义日志格式,Nginx预定义了名为combined日志格式,如果没有明确指定日志格式,默认使用该格式。

使用log_format指令定义自定义日志格式,并在access_log指令中引用它。例如,我们定义了一个名为main的格式,当客户端请求:suyunfe.com/,我们查看日志记录,可以看到$remote_user、$http_referer、$http_x_forwarded_for变量的值。

设置error_log指令用于记录服务器和请求处理过程中的错误信息。配置错误日志文件的路径和日志级别。

open_log_file_cache指令可以设置日志文件描述符的缓存,提高性能,如果日志文件路径中使用了变量,可以使用该指令。

总结,Nginx通过access_log和error_log指令配置访问日志和错误日志,通过log_format我们可以自定义日志格式。如果日志文件路径中使用了变量,使用open_log_file_cache指令来设置缓存,提升性能。

在access_log和log_format中使用了多个变量,详细的变量信息可以参考Nginx官方文档。