【问题标题】:Store PHP sessions in a shared disk [duplicate]将 PHP 会话存储在共享磁盘中 [重复]
【发布时间】:2016-01-18 07:28:01
【问题描述】:

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

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

【问题讨论】:

  • 使用 memcached 或类似的东西
  • @Gavriel 我没有问过内存缓存。我询问了共享磁盘的选项。谢谢。

标签: php session


【解决方案1】:

您必须使用一个通用的 NFS 服务器,该服务器安装在所有实例(服务器)上(NFS 客户端),这最终将为会话的存储和访问提供一个公共位置。详情请查看this

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 嗯.. 只需阅读您关于可伸缩性不重要的评论 - 好吧,如果您 100% 确定这一点,NFS 就可以了。也就是说,我仍然认为 memcahe 更容易。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2023-04-02
      相关资源
      最近更新 更多