我有一臺在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工作?或者這只是不被支持?