AWS EC2 Autoscaleクラスタで実行されているAkka HTTPサーバーがあります。このEC2自動スケールクラスタには、ELBアプリケーションロードバランサが前面にあります。 ELBのほかに、静的ファイルを提供するように設定されたクラウドフロントディストリビューションがあります。AWS CloudfrontでWebSocketを有効にする方法
私たちは、ブラウザからバックエンドへのすべてのwebsocket接続要求がエラーHTTP 400 Expected UpgradeToWebsocket header
で失敗する問題に直面しています。
さらに調査すると、クライアントはロードバランサに直接接続できますが、クラウドフロント経由の接続要求は失敗します。最終的にAWS Cloudfrontのドキュメントでthis pageにアクセスしました。これは、クライアントが接続できない理由である可能性のある「アップグレード」ヘッダーをクラウドフロントが除去してしまうことを示しています。
この問題を回避するために、すべての "ヘッダー転送"オプション(キャッシュを無効にする)を有効にしましたが、それでも機能しませんでした。さらに、特定のURLに対してクラウドフロントキャッシュを選択的に無効にするか、またはクラウドフロントをバイパスするオプションを見つけることができませんでした。
この問題を回避するにはどうしたらいいですか?ウェブソケットがクラウドフロントで動作するようにするにはどうすればよいですか?それともこれはサポートされていないのですか?