haproxy中"session"的确切含义是什么?

ASB*_*Bai 6 session haproxy

当我打开我的http代理服务器的haproxy统计报告页面时,我看到如下内容:

Cum. connections:   280073
Cum. sessions   :   3802
Cum. HTTP requests: 24245
Run Code Online (Sandbox Code Playgroud)

我没有在配置中使用'appsession'和任何其他与cookie相关的命令.那么'会话'在这里意味着什么?

我想haproxy通过这个顺序识别http会话:

  1. 如果配置中存在cookie或查询字符串,请使用它.
  2. 使用SSL/TLS会话.
  3. 使用IP地址和TCP连接状态.

我对吗?

zer*_*eux 9

今天早上我问自己同样的问题.

通过http://www.haproxy.org/download/1.5/doc/configuration.txt搜索我遇到了这个非常简短的定义(隐藏在参数描述中):

A session is a connection that was accepted by the layer 4 rules.
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您显然使用Haproxy作为layer7/HTTP负载均衡器.如果会话是TCP连接,由于客户端/前端Keep-Alive,拥有比会话更多的HTTP请求是正常的.

然后我想高连接数表明很多传入连接在被HTTP层考虑之前就被拒绝了.例如,通过基于IP的ACL.

据我所知,引入"会话"一词是为了确保两个不同的概念没有混合:

  • (TCP)连接:它是一个离散事件
  • (TCP)会话:它是跟踪各种元数据并具有一定持续时间的状态; 最重要的是,Haproxy工作负载(CPU和内存)应该主要与会话数量(到达率和并发数量)相关


Wil*_*eau 6

实际上,会话不是在连接之后而是在连接之前引入的。端到端连接称为“会话”。随着SSL,代理协议和第4层ACL的引入,需要将端到端会话分割成较小的部分,因此引入了“连接”。Zerodeux完美地解释了您所观察的内容。