Nginx和Apache配置日志格式记录Cookie

Nginx变更HTTP2配置过程记录 背景 最近,业务平台受客户反馈,登录响应很慢,达到50s左右,虽然平台带宽又1G,但是用户上传文件到平台的速率只有40Kb/s左右,业务正常使用受影响严重。 经与研发侧同事沟通,考虑采用http2,因http2再nginx中相较于http1具备较大优势: 环境检查 相关资料表明:openssl的版本必须在1.0.2e及以上、nginx的版本必须在1.9.5以上 如果没有安装的话: ./configure --prefix=/usr/local/nginx --with-openssl=../openss 阅读详情

记录Cookie有什么用?

  有时候我们需要通过web服务器的访问日志来统计UV(独立访客),并据此分析用户的行为。而UV是依据cookie数据得出的统计。UV相对于IP的好处是:IP是一个反映网络虚拟地址对象的概念,UV是一个反映实际使用者的概念,更加准确地对应一个实际的浏览者。使用UV作为统计量,可以更加准确的了解单位时间内实际上有多少个访问者来到了相应的页面。

如何记录Cookie?

Nginx:

在nginx的配置文件中,可以通过$http_cookie来访问Cookie.

想要记录Cookie,你需要修改nginx.conf配置文件。下面看一下具体的配置方法。

找到如下代码,

1 #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
2 #                  '$status $body_bytes_sent "$http_referer" '
3 #                  '"$http_user_agent" "$http_x_forwarded_for"';

如果你要记录整个Cookie,在下面添加一个新的log_format

1 log_format  access_with_cookie  '$remote_addr - $remote_user [$time_local] "$request" '
2                                 '$status $body_bytes_sent "$http_referer" '
3                                 '"$http_user_agent" "$http_x_forwarded_for" "$http_cookie"';

然后在合适的位置上添加

access_log  /usr/share/nginx/logs/access_with_cookie.log  access_with_cookie;

 

如果你要记录Cookie的一部分,则你需要截取$http_cookie的内容。

现在假设我们在php中设置一个Cookie,

  <?php
       setcookie('uuid' , '137C6BAE-DE1F-4F5F-51ED-5E1AA1B55A17' , time() + 3600*24);
  ?>

$http_cookie大概会是这样的

uuid=137C6BAE-DE1F-4F5F-51ED-5E1AA1B55A17

如果想仅仅记录  137C6BAE-DE1F-4F5F-51ED-5E1AA1B55A17。

则需要在nginx.conf的server段添加

1  if ($http_cookie ~* ".*uuid=(.*)(?:;|$)")
2  {
3      set $cookie_uuid $1;
4  }

并修改logformat,用$cookie_uuid代替$http_cookie

上面的配置涉及到了nginx的正则表达式。我对于正则表达式也不是很了解,这里仅说一下我的理解,不保证正确。

$1代表正则表达式中第一个括号里边的内容。

好了,在nginx日志里记录Cookie大概就是上面这个样子。

Apache

nginx配置网络上的文章比较多,但Apache得相对少一些。把我的方法说明一下,原理是一样的,只是语法有些差别。

Apache已经预置了获取Cookie某个字段的方法:%{VARNAME}C,所以配置起来会相对简单一点。

编辑httpd.conf,找到下面的内容。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

在它之上加1行,

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"  \"%{uuid}C\"" combined_with_cookie

%{VARNAME}C代表cookie中VARNAME的值。仅支持version 0 cookies。关于Apache的LogFormat可参考这里,有详细的说明。

修改

CustomLog "logs/access_log" common

为

CustomLog "logs/access_log" combined_with_cookie

另外整个Cookie的值可以使用%{Cookie}i获取。 

 

以上仅是自己的经验总结,不保证其正确性,仅供参考。

Nginx架构及配置详解 概述 Nginx采用C进行编写,是俄罗斯程序员开发的一款轻量级的可构建Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器的软件, Nginx服务器是一个高性能的HTTP和反向代理web服务器,同时也可提供了IMAP/POP3/SMTP服务。nginx常用作跑静态和做负载反向代理,动态php交给apache处理,因后者比较稳定,jsp交给tomcat、resin或jboss。n...... 阅读详情

相关推荐

Linux网站故障15分钟定位:Apache与Nginx配置排查实战

Web服务器故障本质是请求处理链路的中断,其核心在于Linux系统层、网络端口、服务进程、配置加载四层协同失效。Apache和Nginx作为主流Web server,虽架构不同,但共性问题高度集中于配置生效边界、权限继承逻辑与日志反馈延迟。理解server进程用户权限模型、掌握`systemctl is-active`与`journalctl`组合诊断法、善用`nginx -T`展开真实配置,可绕过90%的‘玄学报错’。本文聚焦生产环境中高频出现的502、403、500等HTTP状态码,结合Linux文件权

benben 483

Nginx 日志中记录cookie

在http节点下添加 log_format mai2 '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$...

IOsetting的专栏 214

Nginx 日志中记录 Cookie 服务器

Cookie 是在 Web 开发中常用的一种机制,用于在客户端和服务器之间传递和存储用户相关的信息。通过记录 Cookie 信息,我们可以更好地了解用户的访问行为和习惯,并进行进一步的分析和个性化服务。总结起来,通过对 Nginx 配置文件进行适当的修改,我们可以在服务器的访问日志中记录包含 Cookie 信息的条目。我们将这个变量包含在日志格式中,以便在日志中记录 Cookie。使用以上配置,当有请求到达 Nginx 服务器时,服务器将会记录访问日志,并包含请求中的 Cookie 信息。

DqClojure的博客 539

nginx日志增加cookie信息

一、获取全部cookie信息   这个比较方便,直接在nginx.conf文件中添加$http_cookie 1 2 3 4 5 6 log_format main '[$time_local] - $remote_addr:$remote_port - $remote_user - $upstream_addr $upstream_status $upstream_response_time - ' ...

yshir 2277

访问日志中各个字段分别表示的含义

访问日志中各个字段分别表示的含义

xiongIT的博客 2202

MOS 管驱动设计细节,波形分析

一般认为MOSFET是电压驱动的,不需要驱动电流。然而,在MOS的G S两级之间有结电容存在,这个电容会让驱动MOS变的不那么简单。 如果不考虑纹波和EMI等要求的话,MOS管开关速度越快越好,因为开关时间越短,开关损耗越小,而在开关电源中开关损耗占总损耗的很大一部分,因此MOS管驱动电路的好坏直接决定了电源的效率。 对于一个MOS管,如果把GS之间的电压从0拉到管子的开启电压所用的时间越短,那么MOS管开启的速度就会越快。与此类似,如果把MOS管的GS电压从开启电压降到0V的时间越短,那么MOS管关断的

m0_50862404的博客 1万+

配置Tomcat的访问日志格式化输出

在tomcat的server.xml文件中,host主机配置区域找到类似如下(红色部分)即为访问日志的配置:  &lt;Host name="localhost"  appBase="webapps"             unpackWARs="true" autoDeploy="true"&gt;        &lt;!--...部分内容略..--&gt;         &l

java_jane的专栏 3462

手把手教你用DLP4500和海康相机搭建双目结构光系统(附完整代码获取路径)

本文详细介绍了如何利用DLP4500投影仪和海康工业相机搭建低成本双目结构光三维测量系统。从硬件选型、软件配置到结构光编码解码实现,再到三维重建全流程,提供了完整的实战指南和优化技巧,帮助用户以不到2万元的预算实现0.05mm精度的三维扫描。

weixin_32447969的博客 316

Apache HTTPD和NGINX访问日志解析器

这是一个Logparsing框架,旨在简化Apache HTTPD和NGINX访问日志文件的解析。 基本思想是,您应该能够拥有一个解析器,可以通过简单地告诉该行写入了哪些配置选项来构造该解析器。这些配置选项是访问日志行的架构。 github地址:https://github.com/nielsbasjes/logparser idea安装插件 Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,

chbxw 605

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

24届-Python面经(华为OD)

【摘要】24届非科班生通过栗栗姐指导成功转行华为OD。从4月4日零基础准备,经历机考(4/18)、测评(4/19)、资格面(5/7)、技术面(5/9-11)到5月17日获offer。全程栗栗姐提供题库、面经指导和实时跟进。虽遇压力面和技术短板,但在专业辅导下10天走完全流程。案例证明转行需自身努力+优质HR支持,栗栗姐团队提供多岗位(Java/Python等)、多地域(北上深等)OD机会,含笔试资料和全流程攻略。

2401_86909848的博客 1188

# Apache与nginx代理的日志管理

Nginx在代理时,可以在请求头上设置变量,服务器根据相关配置可以接收此变量。Apache在记录日志时会按照上述格式记录到日志中,后面的。

weixin_44524357的博客 335

Trimble RealWorks处理点云数据(一)之坐标转换

Trimble RealWorks处理点云数据之坐标转换

yilvyangguang520的博客 3618

Ubuntu 20.04下Nginx与Apache共存配置实战

Web服务器架构中,Nginx和Apache并非互斥选项,而是可协同工作的互补组件。Nginx基于事件驱动的异步非阻塞I/O模型,擅长高并发静态资源服务、SSL终止与反向代理;Apache则在动态内容处理(如PHP/Perl模块化运行)、.htaccess重写及安全模块(mod_security)方面具备成熟生态。二者混合部署能兼顾性能与兼容性,尤其适用于遗留系统升级、多租户平台演进等生产场景。其技术价值体现在:卸载静态压力、复用现有配置、统一安全策略与流量治理。典型应用包括电商大促架构、政务系统平滑迁移及

weixin_34146805的博客 1470

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 699

YOLOv12改进策略【损失函数篇】| 替换Powerful-IoU(PIoU),增强对中等质量锚框的关注力,引导锚框更直接、高效地回归

本文针对现有基于IoU的损失函数在目标检测任务中存在的问题,提出了利用Powerful-IoU(PIoU)及其升级版PIoU v2改进YOLOv12的损失函数,以提高模型精度。文章详细介绍了PIoU和PIoU v2的结构原理,并提供了在YOLOv12中实现这些损失函数的具体步骤和代码修改方法。

Limiiiing的博客 931

常见服务器日志分析

Apache 日志位置 ​ 在linux系统中,apache也就是apache2,默认的位置是在/var/log/apache2目录下,错误日志为error.log,访问日志一般带有access.log。 访问日志分析 日志示例 192.168.1.20 - - [22/Apr/2020:15:27:49 +0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) G

Vlary的博客 3671

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

2023年高教社杯 | 2023年高教社杯全国大学生数学建模思路(A题思路、C题思路)

前程算法屋的博客 624

Nginx反向代理Apache共存配置实战(Ubuntu 14.04)

反向代理是现代Web架构中实现服务解耦与性能优化的核心技术,其原理在于前端服务器接收请求后,按策略将流量分发至后端应用服务器,既保留原有业务逻辑兼容性,又提升静态资源处理效率与并发承载能力。该技术广泛应用于老旧系统平滑升级、前后端分离部署及HTTPS终止等场景。在Ubuntu 14.04这类长期稳定但软件版本较旧的环境中,Nginx作为轻量高效反向代理层,与Apache深度集成PHP生态的能力形成互补优势,尤其适合WordPress、Drupal等依赖.htaccess规则的遗留系统演进。本文聚焦rever

afeyfre41671的博客 467

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

web基础及HTTP协议、apache、nginx

(1)Nginx 作为 Web 缓存服务器,它介于客户端和应⽤服务器之间,当⽤户通过浏览器访问⼀个 URL 时,Web 缓存服务器会去应⽤服务器获取要展示给⽤户的内容,将内容缓存到⾃⼰的服务器上,当下⼀次请求到来时,如果访问的是同⼀个 URL,Web缓存服务器就会直接将之前缓存的内容返回给客户端,⽽不是向应⽤服务器再次发送请求。(1)随着访问量的增⻓,⽇志⽂件会越来越⼤,时间⻓既会影响访问的速度,也会占⽤⼀部分磁盘空间,下⾯使⽤脚本⽅式,按天切割 access 和 error ⽇志。数据被包含在请求体中。

weixin_70752048的博客 776

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Web、Apache、Nginx

Web 基础的技术包括超⽂本标记语⾔(HTML)和 HTTP 协议,HTML 是⼀种呈现数据的⽅式(给⼈看的),⽽ HTTP 则是⼀组通信的标准(语法、语义、时许),可以简单的理解为 HTTP 携带 HTML。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态的技术,⼀个叫做 Cookie,⼀个叫做 Session。在该模式下消耗的资源⽐较⼩,适合⾼并发请求,但稳定性没有 Prefork 模式稳定。

weixin_70974866的博客 652

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

日志解析--Logparsing

Apache HTTPD和NGINX访问日志解析器 这是一个Logparsing框架,旨在简化Apache HTTPD和NGINX访问日志文件的解析。 基本思想是,您应该能够拥有一个解析器,可以通过简单地告诉该行写入了哪些配置选项来构造该解析器。这些配置选项是访问日志行的架构。 github地址:https://github.com/nielsbasjes/logparser 需要IDEA先安装Lombok插件 导入依赖 <dependency> <groupId>nl.ba

紫蝶侠的博客 648
上一篇: Nginx模块之SessionSticky (淘宝的tengine)
下一篇: 推荐:使用nginx sticky实现基于cookie的负载均衡
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值