Apache 模块 mod_proxy_wstunnel

Description:mod_proxy的 Websockets 支持模块
Status:Extension
Module Identifier:proxy_wstunnel_module
Source File:mod_proxy_wstunnel.c
Compatibility:在 httpd 2.4.5 和更高版本中可用

Summary

该模块需要 mod_proxy的服务。它支持将 Web 套接字连接隧道传输到后端 Websockets 服务器。该连接将自动升级为 Websocket 连接:

HTTP Response

Upgrade: WebSocket
Connection: Upgrade

可以使用ProxyPass指令将请求代理到echo.websocket.org之类的 websockets 服务器:

ProxyPass "/ws2/"  "ws://echo.websocket.org/"
ProxyPass "/wss2/" "wss://echo.websocket.org/"

使用mod_proxy_balancer可以实现多个后端的负载平衡。

实际上,该模块可用于升级到其他协议,您可以在ProxyPass指令中设置upgrade参数,以允许该模块接受其他协议。 NONE 表示您绕过标题检查,但仍升级到 WebSocket。 ANY 表示Upgrade将读取请求 Headers 并在响应Upgrade中使用