【问题标题】:What's the best way to manage php sessions in an LAMP cluster?在 LAMP 集群中管理 php 会话的最佳方法是什么?
【发布时间】:2010-09-18 14:14:22
【问题描述】:

我已经阅读这个主题有一段时间了。突然有一天,这个解决方案是必要的,而不仅仅是一个梦想。

通过阅读,我发现了常见的区别是(基于文件、memcached、共享内存 (mm)、sql 表和自定义)。

我们最初的想法是使用安装在每个应用程序服务器(LAMP 盒)上的 ZFS 或 AFS,并将 session.save_path php.ini 设置指向该安装路径中的目录。

我想听听成功的故事。

【问题讨论】:

    标签: php session distributed cluster-computing


    【解决方案1】:

    我有点偏见,但我推荐HTTP_Session2。 (我正在开发这个包)虽然我们通过文件支持传统的会话处理,但我们还支持数据库(MySQL、PostgreSQL、SQlite 等,通过PEAR::MDB2)和 memcached。

    就个人而言,我们使用数据库处理程序,每天为多达 100,000 个用户提供服务,没有更大的问题。我认为在优化方面,我接下来会使用 memcached,但是数据库非常适合不需要您向后弯曲的中间修复。 :-)

    顺便说一句,有关 memcached 的更多信息,请查看我在 How to manage session variables in a web cluster? 上的回答。

    编辑

    既然你问了,这里是一个例子(more in the API docs):

    $options = array('memcache' => $memcache);
    

    其中$memcachePECL::Memcache 的一个实例,这是必需的。我知道我们缺少一个例子,我们会改进的。同时,我们的源代码有很好的内联文档,例如查看API documentation

    【讨论】:

    • 您好,非常好的建议。我正在远离 sql​​ 会话处理。 Memcached 看起来是一个更好的方法。我查看了 HTTP_Session2 的文档,发现有一个用于 memcached 的容器,但我看不到 $options 参数需要什么。有什么帮助吗?
    • 我添加了一个例子。这应该可以帮助您入门。
    【解决方案2】:

    如果您正在寻找用于会话的 Memcached 解决方案 - 也许您应该查看 Repcached。如果服务器重新启动等,应该减少丢失会话的任何问题。

    关于repcached
    “repcached”是一个补丁集,它为 memcached 1.2.x 添加了数据复制功能。

    注意:我还没有真正尝试过repcached,但认为值得研究。

    【讨论】:

      【解决方案3】:

      约翰坎贝尔在这里的回答应该会有所帮助

      What is the best way to handle sessions for a PHP site on multiple hosts?

      他关于不只使用 Memcached 的观点很重要。

      另外,正如我在那个问题中提到的,您可能需要考虑 Zend 平台附带的会话集群 - 但该解决方案需要支付大量许可费用。

      【讨论】:

        【解决方案4】:

        我已经在共享服务器上使用基于会话的文件超过 5 年了,没有任何问题。我们有一些会话可能会变得非常大(>10MB)并且基于文件的工作非常好。通常,我们的共享服务器将每个站点的会话文件存储在 chroot 目录中,因此只有 root 可以访问它们。我们发现这是非常可靠的并且没有任何问题。尽管您失去了数据库或 memcached 的一些功能,但它是 PHP 的默认设置是有原因的。

        【讨论】:

          【解决方案5】:

          我认为将您的会话存储在数据库(如 MySQL 或 PostgreSQL)中所涉及的麻烦最少,尤其是如果您已经为您的应用程序提供了一个数据库。

          Memcached 也可能有帮助,因为它可以跨多台机器存储数据,但我没有任何经验。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-11
            • 1970-01-01
            • 1970-01-01
            • 2019-02-10
            • 1970-01-01
            • 2011-03-19
            • 1970-01-01
            • 2021-12-04
            相关资源
            最近更新 更多