计算机网络/计算机科学与应用/系统/运维/开发

精通Nginx 自定义服务日志

记录Nginx服务器提供服务过程应答前端请求的日志 称为服务日志


支持对服务日志的格式、大小、输出配置 需要使用2个指令

access_log 和log_format指令


语法:

access_log path [format [buffer=size]];


path 配置服务日志的文件存放的路径和名称

format 可选 自定义服务日志的格式字符串 

size 配置临时存放日志的内容缓存大小


该指令可以在http、server、location块中进行设置


access_log logs/access.log combined;

combined为log_format指令默认定义的日志格式字符串的名称


取消记录服务日志功能:

access_log off;



和access_log联合使用的另一个指令是log_format,它专门用于定义服务日志的格式,并且可以为格式字符串定义一个名字,以便access_log指令可以直接调用


log_format name string ...;


name,格式字符串的名字,默认的名字为combined

string,服务日志的格式字符串。在定义过程中,可以使用Nginx配置预设的一些变量获取相关内容,变量的名称使用双引号括起来,string整体使用单引号括起来


该指令只能在http块中进行配置


实例:

 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.181.1 - - [12/Sep/2023:18:02:12 +0800] "GET / HTTP/1.1" 200 624 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0"

192.168.181.1 - - [12/Sep/2023:18:02:12 +0800] "GET /favicon.ico HTTP/1.1" 404 537 "http://192.168.181.131/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0"



$remote_addr获取到用户机的IP地址

$time_local获取到本地时间为31/Oct/2011:20:41:39 +0800

$request获取到请求为GET /favicon.ico HTTP/1.1,

$status获取到请求状态为404(未找到,这是笔者将请求的网页暂时移除造成的),

$body_bytes_sent获取到请求体的大小为570B,

$http_referer未获取到任何内容,

$http_user_agent获取到用户使用Mozilla浏览器


参数配置:

参数                      说明                                         示例

$remote_addr             客户端地址                                    192.168.122.1

$remote_user             客户端用户名称                                --

$time_local              访问时间和时区                                17/Dec/2018:10:47:58 +0800

$request                 请求的URI和HTTP协议                           "GET / HTTP/1.1"

$status                  HTTP请求状态                                  304

$upstream_status         upstream状态                                  0

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

$http_referer            url跳转来源,用于记录是从哪个页面链接访问过来的                                   

$http_user_agent         用户终端浏览器等信息,即客户浏览器的相关信息     "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"



$http_host               请求地址,即浏览器中你输入的地址(IP或域名)     www.wang.com 192.168.100.100

$ssl_protocol            SSL协议版本                                   TLSv1

$ssl_cipher              交换数据中的算法                               RC4-SHA

$upstream_addr           后台upstream的地址,即真正提供服务的主机地址     10.10.10.100:80

$request_time            整个请求的总时间                               0.205

$upstream_response_time  请求过程中,upstream响应时间                    0.002


世上最好的保鲜就是不断进步,让自己成为一个更好和更值得爱的人。

评论

^