Ken*_*Ken 9 php session distributed-system
在工作中我们几乎用Java和perl做所有事情,但我想用PHP和会话构建一个功能.一些人认为尝试在我们的系统上进行PHP会话是一个坏主意,因为它会分发给许多服务器.具体问题是什么?
azk*_*oki 10
您还可以使用自定义会话保存处理程序:
http://www.php.net/manual/en/function.session-set-save-handler.php
我没有尝试过,但是使用它你可以定义自己的保存/读取功能,这样你就可以实现数据库或共享的nfs后端,而无需安装任何扩展.
同样由@Eran Galperin提出的Msession,作为我之前提到的那个替代品看起来非常有趣.
小智 5
您的具体问题的答案,问题是什么,在于默认情况下 PHP 将其会话存储在文件系统上的文件中。对于服务请求的单个 Web 服务器,这不是问题,因为您的会话数据将始终可用。但是,如果您有两个负载平衡的 Web 服务器来处理请求呢?
想象一下用一个请求击中第一个网络服务器,它在它的文件系统上创建你的会话文件。然后,您的下一个请求会访问第二个网络服务器。第二个网络服务器当然不会看到会话文件。对于用户来说,您可能登录到一个网站,然后突然被注销。
这不是 PHP 特有的问题,而且很常见。解决方案是将会话数据存储在一些公共区域。最常见的方法是将会话数据存储在所有 Web 服务器都可以访问的数据库中,或者某些共享内存缓存服务器(如 memcached)中。
| 归档时间: |
|
| 查看次数: |
5263 次 |
| 最近记录: |