记录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