我正在使用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包相当新,所以我想知道是否有人经历过和/或克服过这个障碍。提前感谢
发布于 2016-09-14 20:56:58
AWS推出了支持web套接字的新应用程序负载均衡器。将您的ELB更改为应用程序负载均衡器,这将解决您的问题。
https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/
发布于 2017-02-13 19:51:21
正如here所描述的,可以使用应用程序负载均衡器在Elastic Beanstalk上运行Django通道。
在一个简化的形式中,它基本上是:
访问Daphne/websockets
发布于 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的方法,我会更新答案的。
https://stackoverflow.com/questions/36908248
复制相似问题