自动扩展服务器上的PHP会话

时间:2011-02-23 10:49:47

标签: php session amazon-web-services distributed

我正在开发部署到Amazon Web Services的PHP Web应用程序。我们在自动扩展的应用程序服务器前面有负载均衡器。

我们目前面临的问题是处理会话。虽然粘性会话是一个合理的解决方案,但我们希望坚持会议很长时间(理想情况下是数周)。这可能会随着时间的推移而损害负载平衡器的性能。此外,使用自动缩放意味着,我们将不时删除服务器,从而丢失所有活动会话。当然,我们可以使用一个通用的数据库来存储会话,但如果每个请求都需要另外一次往返数据库,我会对性能有点担心。

如果您能提出任何适合您的解决方案或我们可以尝试的任何想法,我将不胜感激。

先谢谢你的帮助, 罗斯

1 个答案:

答案 0 :(得分:2)

我会使用自定义会话解决方案,其中会话存储在数据库中。

这样,所有网络服务器都可以访问同一个会话存储,并且您可以自行决定会话应该保留多长时间。

你可以构建一些适用于PHP普通会话的东西,也可以构建一个完全独立的类来处理它们。

我做了类似的事情,在不同的服务上分享asp和asp.net之间的会话,并且它有效。

如果性能有问题,请使用单独的数据库,memcached或mysql集群(也存储内存)或者mongoDB用于会话。