30

AWS Elastic Beanstalk で socket.io を使用して websocket-server をセットアップしようとしています。/socket.io/1/?t=xxxx への最初のリクエストは実行中ですが、Websocket ハンドシェイクは次のエラーで失敗します。

WebSocket connection to 'ws://xxxxxx.elasticbeanstalk.com/socket.io/1/websocket/a4DTCN2BeJZuiSaphVyz' failed: Unexpected response code: 502 

グーグルでエラー 502 (Bad Gateway) を見ると、nginx-proxy と関係があるようです。では、nginx を websocket で動作するように構成するにはどうすればよいでしょうか?

Websockets のセットアップに関する AWS ドキュメントには何も見つかりません。

4

3 に答える 3

28

nginx を構成する手間を試すこともできますが、Websocket のみを使用している場合は、すべてのプロキシをオフにして直接接続する方が簡単です。

これは、Elastic Beanstalk ダッシュボードのアプリ環境の下にあります。「アクション」とマークされた右側にドロップダウンボタンがあります。「構成の編集/読み込み」を選択します

ここに画像の説明を入力

于 2013-04-17T15:37:06.333 に答える
4

Socket.io のデフォルトはポート 8080 です。AWS Admin > EC2 > Security Groups に「Inbound > Custom TCP Rule」を追加して、EC2 Security Group でポート 8080 が有効になっていることを確認します。

于 2016-08-24T20:20:34.603 に答える
4

ditch-nginx アプローチには重大な欠点があります。https をノードに移動し、socket.io 呼び出しにも移動する必要があります。ノードではなくサーバー構成で https を管理する方がはるかに簡単です。

https が必要ない場合は、プロキシをダンプしてノードに直接アクセスすることをお勧めします。

于 2015-11-29T02:25:49.623 に答える