首页 > 解决方案 > 如何使用 AWS elb 创建可扩展的 Websocket 应用程序?

问题描述

我正在开发一个 Websocket 应用程序,我对如何创建一个可扩展的应用程序有疑问。

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

ELB -> Nginx -> Ec2 实例

或者

Nginx -> ELB -> Ec2 实例

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

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

谢谢你。

标签: amazon-web-servicesnginxwebsocketscalabilityamazon-elb

解决方案


  1. 通常架构如下所示:

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 也可以自动为您处理续订。


推荐阅读