gpt4 book ai didi

php - Symfony 1.4 session 随机丢失

转载 作者:可可西里 更新时间:2023-10-31 22:16:50 24 4
gpt4 key购买 nike

这是我几个月前开始试验的问题,从那以后我一直在尝试修复但没有成功。

症状:symfony 在随机的时间间隔内丢失 session 信息并注销用户。它似乎以某种方式与站点的负载有关。当负载较高时,用户注销的频率似乎更高,甚至可能快到 30 秒。

环境:从这开始我改变了很多设置,包括 php 版本、web 服务器、 session 存储、symfony 版本。这是当前设置:Ubuntu 10.04、php 5.4.0、symfony 1.4.17、nginx 1.0.15 和 FPM。以下是在 factory.yml 中配置 session 存储的方式:

  user:
class: myUser
param:
timeout: 86400
use_flash: true
storage:
class: sfCacheSessionStorage
param:
cache:
class: sfMemcacheCache
param:
lifetime: 86400
host: 192.168.1.3
serializer: IGBINARY
mode: compiled
port: 11211

我不得不提一下,我也使用了 redis 进行 session 存储,但仍然有问题。我真的不知道接下来要尝试什么。还有其他人经历过类似的事情吗?在此阶段,我们将不胜感激任何提示。

更新:经过几个月的搜索和无数次的试验和错误,我认为这可能是一个并发问题。我们的网站非常依赖 AJAX 请求,我了解到除非在 session 处理程序中实现适当的锁定机制,否则它可能会导致 session 出现问题。首先,我从等式中删除了 symfony,我将其设置为使用 php session 。使用默认的文件 session 存储,我永远不会丢失任何 session 。然后我将 php 配置为使用 memcache session 存储。可以肯定的是,我们已经开始看到丢失的 session 。我 100% 肯定 memcached 没有内存不足,我安装了一个管理工具,memcached 服务器几乎没有使用分配给它的 8GB 内存的 2%(没有浪费,内存是根据需要分配的)。 然后我添加了第二个 memcached 服务器并将 session 处理程序配置为使用冗余。这很有帮助,我很少有丢失的 session 。目前这是一个可以接受的妥协。

最佳答案

出于某种原因,memcache 似乎时不时地错过并创建一个导致用户注销的新 session 。

正如 Jestep 所建议的,您应该通过将 memcache 排除在等式之外来证明这一点,看看问题是否消失。

如果是这样,那么问题要么是您与内存缓存的通信方式,要么是内存缓存本身。

关于php - Symfony 1.4 session 随机丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com