我有一台在AWS EC2 Autoscale集群上运行的Akka HTTP服务器。此EC2自动缩放群集在前面有一个ELB应用程序负载均衡器。除了ELB之外,我们还有一个云端分布,用于提供静态文件。如何在AWS Cloudfront上启用Websocket
我们正面临着一个问题,即所有从浏览器到后端的websocket连接请求都会失败,出现HTTP 400 Expected UpgradeToWebsocket header
错误。
经过进一步调查,我们发现客户端能够直接连接到负载均衡器,但通过cloudfront的任何连接请求都会失败。最终,我在AWS Cloudfront文档中发现了this page,其中说,cloudfront删除了任何“升级”标头,这可能是客户端无法连接的原因。
要解决此问题,我启用了所有“标题转发”选项(禁用缓存),但仍然无法使用。此外,我无法找到任何选项来选择性地禁用云端缓存或绕过某些URL的云端服务。
我该如何解决此问题并确保websockets能够通过cloudfront工作?或者这只是不被支持?