ロードバランサでAWS Elastic Beanstalkで動作するようにdjangoチャンネルのチャットアプリケーションを取得しようとしています。DjangoチャンネルでElastic Beanstalkを使用するとWebsocketエラーが発生する
私は基本的にhttps://github.com/jacobian/channels-exampleのコードをElastic Beanstalkで使用するように変更しています。私は、コマンドを使用して上で正常にローカルで実行することができる午前
python manage.py runserver
問題であり、私はElastic Beanstalkででそれを展開するとき、私はチャットアプリが起動され、次のエラーを取得
WebSocket connection to 'wss://mydomain.com/test/' failed: Error
during WebSocket handshake: Unexpected response code: 200
私が試しました溶液はhttps://stackoverflow.com/a/29831723/3667089で提案が、それはちょうど私が既にTCP 80にロード・バランサ・リスナー・ポートを変更し、異なるエラーコード
WebSocket connection to 'wss://mydomain.com/test/websocket' failed:
Error during WebSocket handshake: Unexpected response code: 404
を示し、得られましたセキュア・リスナー・ポートをSSL 443に変更するためのSSL証明書。ただし、引き続き同じエラーが発生します。
私はWebsockets with socket.io on AWS Elastic Beanstalkも読んでいますが、Djangoのプロキシサーバーを設定するオプションはありません。私はApacheをデフォルトで使用していると思います。
Elastic Beanstalkの設定には何が欠けていますか?
これを変更する方法はありますか?daphneサーバーをasgiで実行するには?
を再起動して、サーバーを起動し、私はAWS VPS上のチャンネルを実行している、と私はそれが仕事を得るためにスーパーバイザーを使用する必要がありました。チャンネルの文書では、動作させるためにサーバ( 'venv/bin/daphne app.asgi:channel_layer')とワーカー(' python manage.py runwoker')の両方を実行する必要があると言われています。あなたが望むなら、私は答えに自分のsupervisord.confを投稿することができますが、私はElastic Beanstalkでどのように動作するのか分かりません。 – Brobin
@Brobinはい、それは非常に高く評価されます – user3667089
申し訳ありませんが、私は遅すぎるが、あなたが使用しているロードバランサを知っているかもしれませんか?古典的であれば、ネイティブでウェブソケットをサポートしていません。 –