1、日志介绍

nginx有两种日志,一种是访问日志,一种是错误日志。

访问日志中记录的是客户端对服务器的所有请求。

错误日志中记录的是在访问过程中,因为某些原因发生的错误信息。

 

2、访问日志和错误日志

(1)错误日志

error_log path level

错误日志的格式是没有办法定义的。需要写清楚错误日志的存放路径,相对路径或者绝对路径都可以。

第二个参数是日志的级别。一般的级别有debug|info|notice|warm|error|crit|alert|emerg。一般就配置为error。

一般就是在main,http,server,location;模块中配置

在启动nginx的时候,日志的目录路径是不会自动创建,需要创建好所有的目录,这样nginx才能够成功启动,否则会报找不到目录路径,而日志文件本身是nginx自动创建。

当访问网页报500错误的时候,就可以在这个日志下找找原因,是不是哪个文件没有权限,或者丢失等等。

所以在测试环境或者生产环境配置这个文件都是非常有必要的。

 

(2)访问日志

log_format name format

上边是配置访问日志的格式,这个的作用就是配置在实际中需要统计的字段,并不是一定将所有的字段都要统计出来。

name字段自己定义即可,mainlog、mylog,都可以,但是多个name不能重复。

format就是日志的格式,只要将自己需要的字段写上即可。

下边是字段的类型,选择需要的填写即可。

参数

说明

$remote_addr

客户端地址

$remote_user

客户端用户名称

$time_local

访问时间和时区

$request

请求的URI和HTTP协议

$http_host

请求地址

$status

HTTP请求状态

$upstream_status

upstream状态

$body_bytes_sent

发送给客户端文件内容大小

$http_referer

url跳转来源

$http_user_agent

浏览器的信息

$ssl_protocol

SSL协议版本

$ssl_cipher

交换数据中的算法

$upstream_addr

后台upstream的地址,即真正提供服务的主机地址

$request_time

整个请求的总时间

$upstream_response_time

请求过程中,upstream响应时间

示例:

格式

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

               '$status $body_bytes_sent "$http_referer" '

               '"$http_user_agent" "$http_x_forwarded_for"';

某一条访问

192.168.0.137 - - [02/Apr/2019:11:52:46 +0800] "GET /admin/index.php?act=common&op=pending_matters HTTP/1.1" 200 401 "http://192.168.0.133/admin/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36" "-"

 

access_log path format [buffer=sieze]

访问日志也不是一定需要开的。根据自己的实际情况配置。

path就是路径,写相对路径或者绝对路径皆可。

format是上边配置的访问日志的格式,只需要将format的name写上即可。

buffer写不写都行。如果需要配置写buffer=16k即可。

在启动nginx的时候,日志的目录路径是不会自动创建,需要创建好所有的目录,这样nginx才能够成功启动,否则会报找不到目录路径,而日志文件本身是nginx自动创建。