php - 使用 CakePHP 进行负载平衡和 session 管理

标签 php session cakephp load-balancing

这个精彩网站上的第一个问题 ;)

注意:我使用的是 CakePHP 2.6.2

所以,这是我的问题: 我后面有一个负载平衡器和 2 个网络服务器。 我在这些服务器上放置了一个网站,由于负载平衡器不使用 session 粘性(而且我无法激活它,服务器不是我的),我遇到了 session 问题(当平衡器将我从一个服务器到另一个)。

服务器之间唯一的共享资源是数据库,所以我考虑使用 CakePHP 数据库 session 存储。

但此时我想知道 cakephp 中是否有任何内置解决方案允许在服务器之间切换或复制 session 。

谢谢!

最佳答案

不使用基于文件的 session 非常重要,您可能已经意识到这一点。相反,您必须使用基于数据库、redis 或 memcached 的 session 。

理想情况下,您不想阻止人们在服务器之间移动。粘性 session 似乎是一个很好的解决方案,直到您由于某些问题而失去服务器。相反,我发现将所有网络服务器轻松替换的无共享架构作为目标要好得多。

您可能需要解决的另一件事是文件上传。在多服务器设置中,您不能简单地将上传的文件保存到本地磁盘,因为以下请求可能不会到达同一台服务器。相反,我建议您查看 Blob 存储提供商,例如 Amazon S3、Azure Blob 存储和 Rackspace 云文件。

关于php - 使用 CakePHP 进行负载平衡和 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321485/

相关文章:

Cakephp 3.0 - 案例语句的查询生成器

php - plupload错误生成

php - Python smtplib 比 PHP mail() 慢

spring - Thymeleaf 表达式对象 : #session and ${session. ...}

Django: 'HttpResponse' 对象没有属性 'session'

unit-testing - CakePHP 核心测试不适用于 IIS

php - 从MySQL服务器检索一定时间间隔内的数据

php - PHP 中奇怪的 sprintf 行为

php - 使用 OpenID 进行身份验证后在 REST 应用程序中管理 session

c# - 在 ASP.NET 中列出字符串 session 变量