首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django在亚马逊网络服务上使用EC2排除Websockets故障

使用Django在亚马逊网络服务上使用EC2排除Websockets故障
EN

Stack Overflow用户
提问于 2016-04-28 15:37:35
回答 3查看 2.6K关注 0票数 13

我正在使用Django-Channels来尝试获取实时功能,如聊天/消息、通知等。现在,我已经使用文档中描述的设置在我的笔记本电脑上很好地工作了:http://channels.readthedocs.io/en/latest/。我使用本地redis服务器进行测试。

但是,当我部署到我的Amazon服务器(使用ElastiCache Redis)时,WebSocket功能失败。我正在阅读,我认为这是由于亚马逊的HTTPS不支持WebSockets的事实,所以我需要切换到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实现了WebSockets?Django-Channels包相当新,所以我想知道是否有人经历过和/或克服过这个障碍。提前感谢

EN

回答 3

Stack Overflow用户

发布于 2016-09-14 20:56:58

AWS推出了支持web套接字的新应用程序负载均衡器。将您的ELB更改为应用程序负载均衡器,这将解决您的问题。

https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/

票数 2
EN

Stack Overflow用户

发布于 2017-02-13 19:51:21

正如here所描述的,可以使用应用程序负载均衡器在Elastic Beanstalk上运行Django通道。

在一个简化的形式中,它基本上是:

  1. 创建一个ALB
  2. 添加2个目标组,一个指向端口80,另一个指向Daphne端口,即8080。
  3. 创建2个路径规则。让默认路由指向目标组1(端口80),并将第二个路由设置为使用相对路径,即。/ws/并将其指向目标组2.
  4. 将Daphne和worker添加到supervisord (或另一个初始化supervisord通过相对url ws://example.com/ws/.

访问Daphne/websockets

票数 2
EN

Stack Overflow用户

发布于 2016-12-29 15:26:03

我想ALB是唯一的办法。原因是使用经典LB中的SSL协议listner,会话粘滞和X-Forwaded标头将不会被转发,并将导致代理服务器重定向循环。医生来了,

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

如果我找到现有CLB的方法,我会更新答案的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36908248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档