如何使用AWS elb创建可扩展的Websocket应用程序?

时间:2018-06-14 20:59:24

标签: amazon-web-services nginx websocket scalability amazon-elb

我正在开发一个Websocket应用程序,我对如何创建可伸缩的应用程序表示怀疑。

1-我应该使用Nginx吗?如果是这样,nginx在哪里?它会是这样的:

ELB - > Nginx - > Ec2实例

Nginx - > ELB - > Ec2实例

2-是否有必要使用像Redis这样的服务来进行服务器之间的通信?示例:我连接到server1,我的朋友已连接到server2,但我们在同一个房间聊天。如果我发送消息,则需要联系我的朋友。

3 - 是否可以让我的Elb仅接收https中的呼叫但是与后端的对话是http?我问这个,因为我使用OpsWorks并且很难规范化烹饪书以创建我的环境。

谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 通常架构如下:
  2. ALB - > nginx1,niginx2 - > ALB - > ec2 websocket server1,server2

    这使您的Web服务器和应用服务器可以彼此独立地进行负载均衡

    1. 不一定。 Redis主要用作内存数据存储中的缓存。

    2. 是 - 您可以在ALB上终止ssl,事实上建议这样做,以便在负载均衡器上卸载ssl处理,而不是在实例本身上执行。见 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html。使用此功能的另一个好处是,您可以使用ACM免费颁发可在ALB上部署的证书。 ACM也可以自动为您处理续订。