> 文章列表 > log_format nginx

log_format nginx

log_format nginx

什么是 Nginx log_format ?

Nginx 是一个高性能的 Web 服务器,同时也是一个反向代理服务器,是目前市面上被广泛使用的服务器之一。在 Nginx 中,log_format 是一个可用来配置日志格式的模板字符串,在服务器的日志中可以方便地查看详细的记录信息。

log_format 模板字符串的语法

log_format 的语法非常简单,如下所示:

log_format name string ...;

其中,name 是对该模板字符串的命名,string ... 是一个字符串列表,表示需要在日志中记录的信息。Nginx 的 log_format 模板字符串语法非常灵活,可以包括多种信息指令。

常用的 log_format 指令

在 Nginx 的 log_format 模板字符串中,常用的指令包括:

  • $remote_addr:客户端 IP 地址。
  • $request_method:请求的 HTTP 方法,如 GET、POST、PUT 等。
  • $request_uri:请求的 URI。
  • $status:请求响应的状态码。
  • $body_bytes_sent:发送给客户端的字节数。
  • $http_referer:请求来源 URL。
  • $http_user_agent:客户端使用的 User-Agent。
  • $time_local:请求响应的时间。

使用 log_format 配置自定义日志格式

使用 Nginx 的 log_format 配置自定义日志格式非常灵活,可以根据实际需要自由组合,以满足不同的需求。下面是一个常见的 log_format 配置示例:

log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" "$http_user_agent"';

上述命令将命名该 log_format 为 access,并按照指定的格式输出 IP、用户、时间、请求方法、请求 URI、状态码、返回字节数、来源 URL 和 User-Agent 等信息。

日志配置示例

为了方便后期的日志管理和日志分析,我们可以在 Nginx 的配置文件中进行日志文件名、轮换周期、权限等配置,以确保服务器日志的正常记录和保存。下面是一个常见的日志配置示例:

access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log error;

上述命令将 access 和 error 分别输出到 /var/log/nginx/access.log 和 /var/log/nginx/error.log 文件中。