学习第三天,感谢自己坚持下来了。第二天学习的是配置文件的讲解,今天来说是日志。日志是记录和查看看问题的一个工具,如果你发现nginx起不来了,你可以看一下日志文件,找到对应出错原因,找到应对之策。进入正题。
nginx日志主要有两种:access_log(访问日志)和error_log(错误日志)
访问日志:通过访问日志,我们可以知道 远程客户端的IP地址,浏览器的一些信息,协议信息,访问的时间,请求处理的时间等信息。用户每一次请求都会记录在访问日志里面,至于具体的可以,你可以在配置文件中对应的问题配置log_format,来指定格式,如果没有定义,nginx会以默认格式给你打印。配置如下:
(一)、定义格式
格式:log_format formatName(格式名称) formatInfo(格式信息),
如:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
打印的实例 :
127.0.0.1 - - [04/Dec/2019:11:27:44 +0800] "GET / HTTP/1.1" 200 11222 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
1、$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址; --》127.0.0.1
2、$remote_user :用来记录客户端用户名称; --》 -,是空,说明没有读取到
3、$time_local : 用来记录访问时间与时区;--》04/Dec/2019:11:27:44 +0800
4、$request : 用来记录请求的url与http协议;--》"GET / HTTP/1.1"
5、$status : 用来记录请求状态;成功是200;--》200
6、$body_bytes_sent :记录发送给客户端文件主体内容大小;--》11222
7、$http_referer :用来记录从那个页面链接访问过来的;--》- 打印这个应该是这个是最开始页面,直接通过地址访问的所 以连接为空,没有记录。
8、$http_user_agent :记录客户端浏览器的相关信息;-》"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
(二)、定义日志文件位置
格式:access_log filePath(存放文件路径) formatName(格式名称);
如:access_log logs/access.log main;
(三)、关闭日志记录
如果你不想要记录访问日志,可以关了。
格式:access_log off; # 关闭访问日志
(三)、访问日志的作用域
可以应用access_log指令的作用域分别有http,server,location,limit_except。也就是说,在这几个作用域外使用该指令,Nginx会报错
错误日志:错误日志在Nginx中是通过error_log指令实现的。该指令记录服务器和请求处理过程中的错误信息。如果你没有指定error_log则默认是放在ngnix/logs/error.log文件中。出错了,我们可以通这个文件找到报错信息进行排错。主要性是不言而喻的。
格式:error_log filePath(存放路径) level(日志等级);
例子:error_log logs/error.log notice;
level表示日志等级,日志等级分为[ debug | info | notice | warn | error | crit ],从左至右,日志详细程度逐级递减,即debug最详细,crit最少。
今天学习就到这里了。
总结:日志的配置也是属于配置文件的内容,也就是ngnix中conf/nginx.conf中的内容,所以说,配置文件学习极为重要。