1.Nginx日志分类:访问日志和错误日志
访问日志:记录发起请求的客户端的IP地址、发起请求的时间、发起请求的方法(GET\POST等)、发起请求的HTTP协议(HTTP/1.1等)、浏览器相关信息、响应状态结果等。
错误日志:记录发起请求的客户端的IP地址、发起请求的时间、发起请求的方法(GET\POST等)、发起请求的HTTP协议(HTTP/1.1等)、服务器的调试信息、异常信息等。
当然通过Nginx的日志指令,可以设置更多信息输出到日志中,通过日志分析可以了解到网站的可用性、性能、安全性等,还可以为问题排查提供帮助。
2.访问日志配置:
指令:access_log
含义:用来设置访问日志的输出位置和选用的输出格式。输出位置可以是本地文件、syslog服务器、内存缓冲区等。
syslog服务器是专门用来存储、分析日志的服务器。
作用域:http、stream、server、location、if in location、limit except
设置方法:access_log logs/access.log main;
logs/access.log为本地存储日志文件,main为日志输出的格式。
3.访问日志格式配置
指令:log_format
含义:设置访问日志的格式
作用域:http、stream
设置方法:
(1)常用格式-比如日志格式名称为main,该名称为任意,但是不能出现重复,包括如下信息:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
(2)json格式--比如日志格式名称为logjson,该名称为任意,但是不能出现重复,包括如下信息:
log_format logjson '{
"@timestamp": "$time_local", '
'"@fields": { '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"request_time": "$request_time", '
'"status": "$status", '
'"request": "$request", '
'"request_method": "$request_method", '
'"http_referrer": "$http_referer", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" }
}';
常配合nginx自有的变量,参见:Nginx核心指令if和set入门 Nginx中nginx.conf配置文件详解中提到的变量。
4.错误日志配置:
指令:error_log
含义:设置错误日志输出位置和日志级别。
日志级别分为8种,不支持自定义日志格式。
debug (8)、info(7)、notice(6 )、warn(5 )、error(4 )、crit (3)、alert (2 )、emerg (1)。
从1到8,记录的日志越来越详细,debug输出级别输出最为详细,配合调试使用,但是debug和info会消耗大量磁盘 IO 资源。
实际生产环境中常用的error 输出级别。
作用域:main、http、mail、stream、server、location
设置方法:error_log logs/error.log error;
logs/error.log 为错误日志存储路径,error为错误日志级别。
本文暂时没有评论,来添加一个吧(●'◡'●)