我正在开发一个Websocket应用程序,我对如何创建可伸缩的应用程序表示怀疑。
1-我应该使用Nginx吗?如果是这样,nginx在哪里?它会是这样的:
ELB - > Nginx - > Ec2实例
或
Nginx - > ELB - > Ec2实例
2-是否有必要使用像Redis这样的服务来进行服务器之间的通信?示例:我连接到server1,我的朋友已连接到server2,但我们在同一个房间聊天。如果我发送消息,则需要联系我的朋友。
3 - 是否可以让我的Elb仅接收https中的呼叫但是与后端的对话是http?我问这个,因为我使用OpsWorks并且很难规范化烹饪书以创建我的环境。
谢谢。
答案 0 :(得分:1)
ALB - > nginx1,niginx2 - > ALB - > ec2 websocket server1,server2
这使您的Web服务器和应用服务器可以彼此独立地进行负载均衡
不一定。 Redis主要用作内存数据存储中的缓存。
是 - 您可以在ALB上终止ssl,事实上建议这样做,以便在负载均衡器上卸载ssl处理,而不是在实例本身上执行。见 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html。使用此功能的另一个好处是,您可以使用ACM免费颁发可在ALB上部署的证书。 ACM也可以自动为您处理续订。