允许 Google Cloud Platform 上的 Websocket 连接

允许 Google Cloud Platform 上的 Websocket 连接

我们有一个 GCE 项目,其中有几台服务器位于负载均衡器后面。这些服务器正在运行 NodeJS HTTPS 服务器。我们最近尝试实现 websocket 支持,但似乎无法从负载均衡器后面连接到它。一旦升级标头发送到服务器以启动 websocket,它就会关闭连接并出现 400 错误。

在负载均衡器的日志中我们看到以下内容:

  @type:  "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"   
  statusDetails:  "upgrade_header_rejected"   

连接似乎无法到达我们的后端服务器。有人知道如何解决这个问题吗?

答案1

WebSocket 是原生支持由 GCP 中的 HTTP(s) 负载均衡器提供。如果您正在使用该负载均衡器并且收到“upgrade_header_rejected”消息,则可能是因为后端拒绝连接。客户端也可能尝试从安全连接升级到不安全的连接,或者标头无效。

相关内容