网站首页 > 精选教程 正文
说明:access.log 的格式是可以自己自定义,输出的信息格式在nginx.conf中设置
一般默认配置如下:
http {
...
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
...
}
示例日志收集:
39.107.234.70 - - [02/Feb/2023:11:18:29 +0800] "POST /oauth/getJsapiToken HTTP/1.0" 200 109
"https://mapi.../reserved/index.html" "Mozilla/5....PhoneType/Phone mPaaSClient" "2409..., 36.156.119.45, 100.62.78.190, 10.145.210.210, 220.191.249.136"
日志参数详解:
$remote_addr 是离服务器“最近”的 IP。没有使用代理时,也就是客户端 IP。使用一层代理时,也就是代理的 IP。使用多层代理时,也就是最近一个(最靠近服务器)的代理的 IP。客户端IP 39.107.234.70
$remote_user 客户端用户名称 - -
$time_local 访问时间和时区 02/Feb/2023:11:18:29 +0800
$request 请求的URL和http协议 POST /oauth/getJsapiToken HTTP/1.0
$status http请求状态 200
$body_bytes_sent 客户端发送文件内容大小 109
$http_referer url跳转来源 "https://mapi.../reserved/index.html"
$http_user_agent 用户终端浏览器信息 "Mozilla/5....PhoneType/Phone mPaaSClient"
$http_x_forwarded_for 用以记录原有的客户端IP地址和原来客户端请求的服务器地址 "2409..., 36.156.119.45, 100.62.78.190, 10.145.210.210, 220.191.249.136"
http_x_forwarded_for说明:
假设将Nginx服务器作为Web服务器,位于负载均衡设备、Squid、Nginx反向代理之后,不能获取到客户端的真实IP地址了。
原因是经过反向代理后,由于在客户端和Web服务器之间增加了中间层,因此Web服务器无法直接拿到客户端的IP。
通过$remote_addr变量拿到的将是反向代理服务器的IP地址。 但是,反向代理服务器在转发请求的HTTP头信息中,可以增加X-Forwarded-For信息,
用以记录原有的客户端IP地址和原来客户端请求的服务器地址。
这时候,要用log_format指令设置日志格式,让日志记录X-Forearded-For信息中的IP地址,即客户的真实IP。
参考示例:
log_format access_json '{"@timestamp":"$time_local",'
'"host":"$server_addr",'
'"clientip":"$remote_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"uri":"$uri",'
'"domain":"$host",'
'"x_forwarded_for":"$http_x_forwarded_for",' //接收透传
'"X-Real-IP":"$remote_addr",'
'"referer":"$http_referer",'
'"tcp_xff":"$proxy_protocol_addr",'
'"http_user_agent":"$http_user_agent",'
'"status":"$status"}';
说明:此文档仅用于记录参考,不做其他用途
猜你喜欢
- 2024-10-08 Hive中学习分析思路 hive总结
- 2024-10-08 通过nginx日志分析IP UV和PV量 nginx统计pv和uv
- 2024-10-08 ClickHouse如何实现实时日志分析 clickhouse 日志采集
- 2024-10-08 Linux常见日志统计分析命令 linux 统计日志关键字
- 2024-10-08 Hive中利用日志数据学习分析思路 hive执行日志
你 发表评论:
欢迎- 最近发表
-
- java 服务之间调用(rpc)(java实现服务器)
- Java机器学习库(Java ML)(二、聚类)
- 「Java库」如何使用优秀的加密库Jasypt来保护你的敏感信息?
- GitHub精选 | 轻量级Android和Java日志库
- Java面试官:MySQL binlog 有什么作用?主从延迟的了解么?
- Excel函数核武器库:50个高频场景公式——第二弹
- Excel函数核武器库:50个高频场景公式——第一弹
- Spring Cache高性能缓存库 - Caffeine简介
- Java通过Kafka Streams库来实现数据流处理
- 一连问了好几个大佬,竟然都不知道Redis为什么默认16个数据库?
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)