我计划在 Amazon Web Services 上拥有 2 个t2.micro
Linux 实例和 1 个 MySQL 数据库db.t1.micro
和 1 个 Elastic Load Balancer。我将在其上运行 PHP 程序。
我的问题是:我是否需要将会话写入数据库,以便在 2 个实例之间共享?或者我可以将 Elastic LB 视为透明的?
我计划在 Amazon Web Services 上拥有 2 个t2.micro
Linux 实例和 1 个 MySQL 数据库db.t1.micro
和 1 个 Elastic Load Balancer。我将在其上运行 PHP 程序。
我的问题是:我是否需要将会话写入数据库,以便在 2 个实例之间共享?或者我可以将 Elastic LB 视为透明的?
由于您的应用程序似乎不支持使用会话管理进行集群以在集群中共享会话,因此我建议您为负载均衡器配置会话粘性。这会将用户的会话绑定到特定实例。然后,所有用户的请求将仅由该实例处理。
你有两个选择。您的应用程序支持会话,因此您可以直接告诉负载均衡器使用哪个应用程序 cookie 来跟踪每个用户请求的实例。
否则,当负载均衡器本身将特定会话 cookie 插入响应以将来自用户的后续请求绑定到同一实例时,您可以启用所谓的基于持续时间的会话粘性。
以下屏幕截图是不言自明的。您可以从 AWS Web 控制台配置会话粘性 -> 您的负载均衡器描述选项卡 -> 编辑端口配置
:
更多细节可以在这个页面找到。