我找不到有关 WSS 如何与 HTTPS 代理和负载均衡器交互的权威信息。
我有一个处理 SSL 的负载均衡器(SSL 卸载),以及两个包含我的 Web 应用程序并处理纯 HTTP 请求的 Web 服务器。因此,客户发出 HTTPS 请求,但我的 Web 服务器收到 HTTP 请求,因为负载均衡器负责 SSL 证书处理。
我现在正在开发一个将公开 WebSocket 的应用程序,并且需要 SSL。但我不清楚当负载均衡器获得 WSS 的安全 HTTPS 握手时会发生什么。
它会像正常握手一样将请求转发到 Web 服务器吗? WebSocket 使用“Upgrade:WebSocket”HTTP 标头,该标头仅对第一跳有效(因为还有“Connection:Upgrade”,这会是问题吗?
干杯。
负载均衡器通常可以处理 websockets - 还包括 ssl 卸载不应该成为问题 - 但您必须配置 LB 来处理 HTTP,而不仅仅是根据第 3 层信息来平衡流量 - 因此,您必须确保 LB 必须关心会话状态。
我不知道你正在使用什么LB - 但例如使用 F5 LB,您只需为基于 Websocket 的应用程序分配一个 http 配置文件即可进行负载平衡。 如果您想另外进行 ssl 卸载 - 只需将 ssl 客户端配置文件分配给您的虚拟服务器即可。 http://support.f5.com/kb/en-us/solutions/public/14000/700/sol14754.html