NGINX日志配置参数

发布时间:2023年12月18日

日志参数?

参数说明示例
$remote_addr客户端地址219.227.111.255
$remote_user客户端用户名称
$time_local访问时间和时区14/Dec/202023:09:27:01 +0800
$time_iso8601访问时间2023-12-14T09:27:45+08:00
$request请求的URI和HTTP协议“GET /article-10000.html HTTP/1.1”
$request_uri请求除了域名以外的URI 
$server_port请求服务地址的端口号 
$http_host请求地址,即浏览器中你输入的地址(IP或域名)www.ha97.com;198.98.120.87
$statusHTTP请求状态200
$upstream_statusupstream状态200
$body_bytes_sent发送给客户端文件内容大小1547
$http_refererurl跳转来源https://www.google.com/
$http_user_agent用户终端浏览器等信息“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$ssl_protocolSSL协议版本TLSv1
$ssl_cipher交换数据中的算法RC4-SHA
$upstream_addr后台upstream的地址,即真正提供服务的主机地址10.36.10.80:80
$request_time整个请求的总时间0.165
$upstream_response_time请求过程中,upstream响应时间0.002

?日志按照天配置生成方式

在location中配置(配置指定端口指定路径下的日志记录)就放在location节点下,如果是配置server日志,则将下面配置放在SERVER节点下


if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
		set $year $1;
		set $month $2;
		set $day $3;
}
#win环境下,路径分隔符要使用\\,不要会转译错误(有些用/也不会报错)
access_log  logs\\host.access_$year-$month-$day.log  main;;
#linux环境,正常写路径即可
access_log var/logs/location_8080_access_$year-$month-$day.log;

全局http日志(在http块下增加以下代码即可)

#因为if写法只能出现在server跟location中,需要定义map解决该问题
map $time_iso8601 $logdate {
		'~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
		default 'date-not-found';
}
#win环境下,路径分隔符要使用\\,不要会转译错误
access_log logs\\http_access_$logdate.log;
#linux环境,正常写路径即可
access_log var/logs/http_access_$logdate.log;

文章来源:https://blog.csdn.net/wxg198286/article/details/134991523
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。