当前位置: 首页 > article >正文

Nginx配置记录访问信息

文章目录

  • 方法一:使用Nginx原生配置记录访问信息
  • 方法二:使用Nginx_headers_more模块记录更加详细的信息

Nginx被广泛应用于各种场景如:Web服务器、反向代理服务器、负载均衡器、Web应用防火墙(WAF)等
在这里插入图片描述
在实际的产品开发中,无论是功能测试或访问行为审计,都需要详细记录每一次访问行为

方法一:使用Nginx原生配置记录访问信息

vi /usr/local/nginx/conf/nginx.conf

http {log_format detailed '[$time_local] ''客户端IP: $remote_addr ''请求方法: $request_method ''URL: $request_uri ''协议: $server_protocol ''状态码: $status ''响应大小: $body_bytes_sent ''引用页: $http_referer ''用户代理: $http_user_agent ''请求头: "$http_headers" ''响应头: "$sent_http_headers"';access_log /var/log/nginx/detailed_access.log detailed;
}

测试可以发现,Nginx的访问日志中详细记录了客户端IP、请求方法、URL、HTTP版本、状态码、响应大小、referer字段、客户端浏览器等详细信息:
在这里插入图片描述

方法二:使用Nginx_headers_more模块记录更加详细的信息

# 1. 下载Nginx_headers_more模块源码
wget https://github.com/openresty/headers-more-nginx-module/archive/refs/heads/master.zip
unzip master.zip
# 2. 重新编译Nginx
./configure --add-module=/path/to/headers-more-nginx-module-master
make
make install
# 3. 配置Nginx记录完整访问信息
http {more_set_input_headers 'Request-Headers: $http_headers';more_set_headers 'Response-Headers: $sent_http_headers';log_format detailed '[$time_local] ''客户端IP: $remote_addr ''请求方法: $request_method ''URL: $request_uri ''协议: $server_protocol ''状态码: $status ''响应大小: $body_bytes_sent ''引用页: $http_referer ''用户代理: $http_user_agent ''完整请求头: "$more_input_headers_request_headers" ''完整响应头: "$sent_http_response_headers"';access_log /var/log/nginx/detailed_access.log detailed;

如果需要详细,可以使用lua脚本直接读取原始请求头和打印响应头

http://www.lryc.cn/news/2380458.html

相关文章:

  • HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
  • JAVA EE(进阶)_HTML
  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 鸿蒙北向源码开发: 检查应用接口dts文件api规范性
  • 谷歌 NotebookLM 即将推出 Sparks 视频概览:Gemini 与 Deep Research 加持,可生成 1 - 3 分钟 AI 视频
  • 5月19日笔记
  • 从基础到高级:网站反爬技术全景解析与第三方工具对比
  • Java面试实战:从Spring Boot到分布式缓存的深度探索
  • 职坐标AIoT技能培训课程实战解析
  • pytorch小记(二十):深入解析 PyTorch 的 `torch.randn_like`:原理、参数与实战示例
  • 小结:网页性能优化
  • 8-游戏详情制作(Navigation组件)
  • Unity引擎源码-物理系统详解-其二
  • 1.3.3 数据共享、汇聚和使用中的安全目标
  • 【Docker】Docker安装Redis
  • Oc语言学习 —— Foundation框架总结
  • react+html2canvas+jspdf将页面导出pdf
  • LWIP的Socket接口
  • 基于支持向量机(SVM)的P300检测分类
  • Better Faster Large Language Models via Multi-token Prediction 原理
  • 51c嵌入式※~合集7~Linux
  • Spring的Validation,这是一套基于注解的权限校验框架
  • MySQL - 如何突破单库性能瓶颈
  • 基于 Vue 和 Node.js 实现图片上传功能:从前端到后端的完整实践
  • go封装将所有数字类型转浮点型,可设置保留几位小数
  • Rust 学习笔记:关于 Vector 的练习题
  • Linux 系统异常触发后自动重启配置指南
  • apisix透传客户端真实IP(real-ip插件)
  • Oracle 数据库的默认隔离级别
  • 统计客户端使用情况,使用es存储数据,实现去重以及计数