nginx日志文件的配置

nginx日志文件的配置

   张吉吉     2019年10月22日 01:26     461

1、日志介绍

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

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

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

 

2、访问日志和错误日志

(1)错误日志

Nginx的错误日志中会记录nginx启动时产生的错误和客户端访问时产生的错误。所以错误日志是寻找问题的关键信息。其格式和访问日志不一样,不能进行自定义。

 可以放置的标签段为:

main,http,server,location

错误日志格式:

error_log path(存放路径) level(日志等级)

error_log:就是关键字,只能这样写。

path:是存放路径,一定要可以访问。

level:有几个不同的级别,[ debug | info | notice | warn | error | crit ]。

一般就配置error就可以了。最好不要配置info和debug。因为会消耗大量的磁盘IO。当然测试环境或者在学习过程中配置还是可以的,对理解nginx有一定的帮助。

示例:error_log /usr/local/shopnc/nginx/logs/error.log info;

关闭错误日志:error_log off并不能关闭错误日志,而是会将错误日志记录到一个文件名为off的文件中。
正确的关闭错误日志记录功能的方法如下:
error_log /dev/null;
上面表示将存储日志的路径设置为“垃圾桶”。


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

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

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

 

(2)访问日志

访问日志开不开起,其实都可以,所以如果相关闭的话只需要在后边配置off。但是如果想要得到更多的数据就需要开启日志,从中就能获得IP数据、访问页面次数等等众多有用的信息。

可以放置的标签段为:

http,server,location

关闭访问日志:

access_log off;

访问日志格式:

access_log path(存放路径) [format(自定义日志格式名称) [buffer=size | off]]

path: 指定日志文件的存放路径

format:格式名称,这个可以自定义。

[buffer=size | off]]:缓存文件大小,或者关闭日志。

示例:access_log /usr/local/shopnc/nginx/logs/shop/access.log main buffer=16k;


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=size]

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

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

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

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

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


其他文章