2016-04-28 11 views
10

チャット/メッセージング、通知などのリアルタイム機能を取得するためにDjangoチャネルを使用しています。現在、私はラップトップで設定を使用してすべてうまく動作するようにしていますここにあるドキュメントのhttp://channels.readthedocs.io/en/latest/に記載されています。私は、テストの目的でローカルのRedisサーバーを使用します。Djangoを使用してAWS上でEC2を使用するWebSocketのトラブルシューティング

ただし、AWS ElastiCache Redisを使用してAmazon EC2 Elastic Beanstalkサーバーにデプロイすると、WebSocket機能が失敗します。私は読んでいましたが、AmazonのHTTPSがWebSocketをサポートしていないことが原因であると考えています。そのため、Secure TCPに切り替える必要があります。 私はそれをやってみた: https://blog.jverkamp.com/2015/07/20/configuring-websockets-behind-an-aws-elb/https://medium.com/@Philmod/load-balancing-websockets-on-ec2-1da94584a5e9#.ak2jh5h0q しかし、役に立たない。

AWS EBでCentOS/ApacheとDjangoでWebSocketを実装することに成功した人はいますか? Django-Channelsパッケージはかなり新しくなっていますので、誰もがこの障害を経験していたり​​、克服したりしているのであれば私はwondernigでした。 ありがとうございます。

+0

を見つけました。私が知る限り、デフォルトのPythonコンテナはWSGI(したがって、 '' aws:elasticbeanstalk:container:python "'の中の' 'WSGIPath:" appname/wsgi.py "")を使用することを想定しているので、代わりにDaphneを実行するのが難しくなります。あなたはこれを解決する方法を見つけましたか? – mikhuang

+0

あなたはこれを把握しましたか? – DeadDjangoDjoker

+0

https://www.quora.com/What-is-the-best-way-to-implement-Server-Push-in-Django-without-using-third-party-services#gmKROc –

答えて

0

私はALBが唯一の方法であると仮定します。その理由は、従来のLBのSSLプロトコルリスナーでは、セッションスティッキーとX-Forwadedヘッダーが転送されず、プロキシサーバーのリダイレクトループが発生するためです。ドクは、私は、既存のCLBとの道を見つける場合、私は答えを更新します、ここで

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html

です。

2

説明したように、hereでは、Application Load Balancerを使用してElastic BeanstalkでDjango Channelsを実行することができます。簡略化した形で

、それは基本的にあります:

  1. すなわち2つのターゲットグループ、ポート80、及びダフネポートを指し示す1を指すものを、追加ALB
  2. を作成します。 2 パスルールを作成します。デフォルトルートがターゲットグループ1(ポート80)を指すようにし、2番目のルートが相対パスを使用するように設定します。 /WS/とグループ2
  3. はDONE supervisord(または別のinitシステム)するダフネと労働者の追加対象とすることを指します!相対URLでDaphne/websocketsにアクセスws://example.com/ws/
+0

私はこの1つ@egeを試しましたが、私はまだ失敗しました:WebSocketハンドシェイク中のエラー:予期しない応答コード:502' –

1

私は遅れていると仮定し、私は、私はまた、EBSを使用しようとしていますこの記事http://blog.mangoforbreakfast.com/2017/02/13/django-channels-on-aws-elastic-beanstalk-using-an-alb/

+0

新しい質問がある場合は をクリックしてください。/ask)ボタンをクリックします。 が役立つ場合は、この質問へのリンクを含めてください。 –

+0

私はこれを@Susejに従いましたが、私はまだ失敗しました:WebSocketハンドシェイク中のエラー:予期しない応答コード:502' –

関連する問題