Session 什么';“的确切含义是什么;会议“;在haproxy?

Session 什么';“的确切含义是什么;会议“;在haproxy?,session,haproxy,Session,Haproxy,当我打开http代理服务器的haproxy statistics报告页面时,我看到如下内容: Cum. connections: 280073 Cum. sessions : 3802 Cum. HTTP requests: 24245 我没有在配置中使用“appsession”和任何其他与cookie相关的命令。那么“会话”在这里是什么意思 我猜haproxy通过以下顺序识别http会话: 如果配置中存在cookie或查询字符串,请使用cookie或查询字符串 使用SSL/TLS

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

Cum. connections:   280073
Cum. sessions   :   3802
Cum. HTTP requests: 24245
我没有在配置中使用“appsession”和任何其他与cookie相关的命令。那么“会话”在这里是什么意思

我猜haproxy通过以下顺序识别http会话:

  • 如果配置中存在cookie或查询字符串,请使用cookie或查询字符串
  • 使用SSL/TLS会话
  • 使用ip地址和TCP连接状态

  • 我说得对吗?

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

    在搜索过程中,我偶然发现了这个非常简短的定义(隐藏在参数描述中):

    在您的例子中,您显然使用Haproxy作为layer7/HTTP负载平衡器。如果会话是TCP连接,由于客户端/前端保持活动,HTTP请求比会话多是正常的

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

    据我所知,引入“会话”一词是为了确保两个不同的概念不会混淆:

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

    事实上,会话不是在连接之后引入的,而是在连接之前引入的。端到端连接称为“会话”。随着SSL、代理协议和layer4 ACL的引入,需要将端到端会话分成更小的部分,因此引入了“连接”。Zerodeux完美地解释了您的观察结果。

    没有ACL条目来拒绝连接和http请求。但是我有两个前端:一个用于http:
    Cum。连接:336829立方米。课时:336829立方米。HTTP请求:337483
    ,另一个用于https:
    Cum。连接:338179立方米。课时:5249立方米。HTTP请求:22995
    。您可以看到http统计数据非常合理,但我无法理解https统计数据。在这种情况下,您的https后端上可能有很多TCP连接没有通过SSL握手。愚蠢的bot/spider/scanner可能会产生这种噪音(大多数都是编程非常糟糕的HTTP(S)客户端)。这只是胡乱猜测。你的胡乱猜测非常准确。谢谢你,威利,所以两个连接(一个“客户端到haproxy”+一个“haproxy到后端服务器”)构建了一个haproxy级别的会话,对吗?在http模式下使用
    http reuse always
    选项,成功共享的后端连接也会进行haproxy会话?不完全如此。会话是包含连接到客户端连接的所有元素的实体。它携带一个流(几个流稍后使用HTTP/2),该流在一端连接到客户端连接,在另一端(可能)连接到服务器连接。当您重用连接时,它们实际上是从一个流中窃取并分配给另一个流的。在某些情况下,您必须查看代码,它会有所帮助;-)
    A session is a connection that was accepted by the layer 4 rules.