【发布时间】:2014-02-13 16:10:22
【问题描述】:
我有一个托管在 AWS 上的网站,我无法信任此会话数组 $_SESSION[],因为有时 select * from table_name where id=$_SESSION[id] 无法按预期工作。
我正在寻找一些会话管理技巧,如果我使用数据库或 Dyanmo DB 可以吗?
如果有一个拥有大量用户的可扩展应用程序,那么首选的方法是什么?
【问题讨论】:
-
如果你只在一个盒子上托管,那么会话应该没有问题(除非你的代码有问题),然后切换到数据库没有任何区别;如果您要在多个 webhead 之间分配负载,那么您要么需要粘性会话(因此来自同一用户/会话的所有活动都被定向到同一个 webhead),或者需要一个可从所有 webhead 访问的会话 - elasticache 就是一个明显的例子分布式会话处理选项
-
你对这个值有任何SQL escaping吗?
-
@MarkBaker 是的,有很多 webheads(实例)
-
@tadman 我一定会的
-
@user1765876 如果实例失败,用户将失去他们的会话,需要在不同的 Web 前端重新开始一个新会话。将会话存储在 memcached 中会好得多。您可以使用 php-memcache 扩展和一个(或两个)弹性缓存实例非常轻松地做到这一点。
标签: php mysql session amazon-web-services amazon-dynamodb