将 PHP 会话存储在共享磁盘中


Store PHP sessions in a shared disk

是否可以将PHP会话文件存储在由多个实例共享的磁盘上?这样,用户可以向不同的服务器发送请求,并且他将拥有相同的会话数据。

这种方法的缺点或风险是什么?(我知道这不能很好地扩展,并且存在性能问题,但让我们假设性能和可扩展性在此阶段并不重要)

您必须在所有实例(服务器)上使用通用且挂载的 NFS 服务器(NFS 客户端),该服务器最终将为存储和访问会话提供一个公共位置。有关详细信息,请查看此内容

根据PHP手册,这是可以做到的,实际上其中一个评论提到成功做到这一点,你在这里http://php.net/manual/en/function.session-save-path.php#80901

你可以这样做,但它可能不是一个好的选择。使用 NFS,由于锁定模式,性能会很差,并且无法很好地扩展。

为了存储 PHP 会话并在机器之间共享它们,强烈建议使用外部服务 - memcachememcachememcached PHP 扩展都提供易于设置的会话存储模块),或者redis,甚至是关系数据库(例如 MySQL)。在大多数情况下,所有这些都是比 NFS 更好的选择。