2013-04-09 22 views
28

AWS Elastic Beanstalkでsocket.ioを使用してwebsocket-serverを設定しようとしています。アップ/socket.io/1/?t=xxxxする最初の要求を持って、実行しているが、WebSocketをハンドシェイクは、このエラーで失敗します。AWS Elastic Beanstalkでsocket.ioを使用するWebソケット

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

グーグルとエラー502(不正なゲートウェイ)を見てから、それが思わnginx-proxyと関係があります。ですから、どのようにnginxをwebsocketで動作させるように設定すればよいですか?

WebSocketの設定についてAWSのマニュアルで何も見つかりません。

+3

プロキシをnginxからnoneに変更して動作しました。 – funparko

+1

WebSocketハンドシェーク中のエラー:予期しない応答コード:400 " – Jason

答えて

26

nginxの設定の手間を省くことができますが、Webソケットだけを使用している場合は、すべてのプロキシをオフにして直接接続する方が簡単です。

これはあなたのアプリ環境の下で弾力のある豆腐のダッシュボードにあります。右側に「アクション」と表示されたドロップダウンボタンがあります。

enter image description here

+5

2014-04-13現在、この問題は<アプリケーション名>/<環境名>/Configurationにあります。 /ソフトウェア設定/コンテナオプション。 – Rob

+0

「より簡単な」ということも良い意味ですか?同様に、プロキシサーバーをnginxに設定することで何が得られますか(静的なファイルマッピングとgzip圧縮のほかに、どちらも必要ありません)。パフォーマンスとセキュリティはどうですか?私は、プロキシサーバーがない方がパフォーマンスが良いと思われます。しかし、セキュリティはどうですか? nginxはWSS(WebSockets over SSL/TLS)に適していますか、[SSL with Node.js](https://github.com/einaros/ws/blob/master/examples/ssl.js)を実装するだけですか? DoS保護はどうですか?他に何か? – ma11hew28

+1

私はプロキシサーバーをオフにしましたが、確立する前にエラー接続が閉じられています。質問はここに掲載されています:http://stackoverflow.com/questions/26880396/socket-io-error-web-socket-connection-接続が確立される前にクローズされています – user2727195

4

溝-nginxのアプローチには大きな欠点があり、「編集/読み込み設定」を選択します。 httpsをノードに移動し、socket.io呼び出しにも移動する必要があります。ノードではなくサーバー構成でhttpsを管理する方がはるかに簡単です。

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

+6

これは正しくありません。証明書をLoad Balancerに直接追加できます。 –

3

デフォルトではSocket.ioはポート8080です。AWS Admin> EC2> Security Groupsに "Inbound> Custom TCP Rule"を追加することで、ポート8080がEC2セキュリティグループで有効になっていることを確認してください。

関連する問題