为从浏览器到 apache http 服务器到 Web 服务的 Web 套接字调用创建了多少 TCP 连接

Posted

技术标签:

【中文标题】为从浏览器到 apache http 服务器到 Web 服务的 Web 套接字调用创建了多少 TCP 连接【英文标题】:How many total TCP connections are created for web socket call from browser to apache http server to web service 【发布时间】:2021-10-08 13:33:28 【问题描述】:

我想知道当WebSocket调用从浏览器到apache http服务器到后端web服务时,创建了多少个TCP连接?

它是否创建了从浏览器到 apache http 服务器以及从 apache 到 Web 服务的单独 TCP 连接?

【问题讨论】:

【参考方案1】:

当 Apache 代理 websockets 时,客户端和 Apache 之间有 1 个 TCP 连接,Apache 和后端之间有 1 个 TCP 连接。

Apache 监视两个连接的活动并将读取从一个转发到另一个。

这是它可以在第 7 层(应用层,HTTP)代理中的唯一方式。在低得多的层建立隧道,例如 NAT 设备或 MAC 转发 IP 喷射器,可以建立单个连接 - 但不是基于堆栈中更高层的任何东西,例如标头。

第二个连接可以通过 netstat 观察到。

第二个连接在 mod_proxy_wstunnel 调用 ap_proxy_connect_to_backend() 时打开,ap_proxy_connect_to_backend() 又调用 apr_socket_create(),apr_socket_create() 又调用可移植 socket() 例程。当 mod_proxy_http 的最新版本自动处理此隧道时,类似的流程会通过 ap_proxy_acquire_connection。

【讨论】:

谢谢。您能否指出以上内容的来源/文档? 我已经用一些尾随信息对其进行了编辑。

以上是关于为从浏览器到 apache http 服务器到 Web 服务的 Web 套接字调用创建了多少 TCP 连接的主要内容,如果未能解决你的问题,请参考以下文章

P5658 括号树

IIS、Apache、Tomcat、Nginx、CDN,它们之间有何区别?

CentOS8搭建apache服务器

隐藏目录检测到 apache 2.4

如何将图片另存为从 windows phone 7 到服务器的文件路径

杂谈从CGI到Servlet