【问题标题】:can I centrlize session handling on the file system我可以将会话处理集中在文件系统上吗
【发布时间】:2016-01-28 03:52:50
【问题描述】:

我在负载平衡器后面有多个 Web 服务器。
我可以在所有三个 Web 服务器上挂载文件服务器并将该挂载目录用作会话文件夹,从而实现对所有 Web 服务器的集中会话管理吗?
我知道从技术上讲,这是可以做到的,我不知道是否有任何我不知道的陷阱。有没有更好的方法来集中文件系统上的会话(不能使用 Redis/Memcached/MySql 等)

解释为什么不使用内存 或其他基于数据库/服务器的解决方案。我已经尝试了其中的大部分。使用这些解决方案时,我的一个核心系统中有一个奇怪的锁定/竞争条件错误。在我找出这个错误之前,我需要一个快速且(不一定)肮脏的解决方案,在文件系统上,我确定我没有问题。

【问题讨论】:

    标签: php apache session php-5.5 apache2.2


    【解决方案1】:

    我建议您使用 memcached 集群作为所有 Web 服务器的会话处理程序。 你不需要有粘性会话。

    https://www.digitalocean.com/community/tutorials/how-to-share-php-sessions-on-multiple-memcached-servers-on-ubuntu-14-04

    如果您希望会话持久化,我会使用使用 memcached 存储桶的 couchbase 集群。

    http://nitschinger.at/How-to-store-PHP-sessions-in-Couchbase/

    编辑:你可以试试http://php.net/manual/en/function.session-save-path.php 问候,

    【讨论】:

    • 我在使用这些解决方案时遇到了锁定问题,在我发现系统中的这个错误之前,我需要对文件系统进行快速且(也许)肮脏的解决方案,它具有非常好的锁定算法,此外,问题是关于文件系统,而不是替代解决方案。
    • 您尝试了哪些解决方案,发现了哪些问题?我认为您在使用磁盘时会遇到同样的问题,或者可能会更慢,因为它会更慢......
    • 我在磁盘上没有这个问题,只有当我使用上述任何建议的解决方案时我才有。这是我的应用程序中的东西,调试它需要很长时间。在我这样做之前,我需要一个中间解决方案。我需要知道文件系统是否存在任何缺陷,我知道如何实施您建议的解决方案。
    • 你有一个编辑,你可以尝试将会话保存到磁盘。
    猜你喜欢
    • 2022-08-20
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2015-11-26
    相关资源
    最近更新 更多