session - 基于 Memcached 的烧杯 session 未在 Zope 启动时初始化

标签 session memcached plone zope beaker

我们正在使用基于 memcached 的烧杯 session 来进行分布式 Plone/Zope 设置。相同的设置在我们的预生产环境中运行良好,但当我们转移到生产环境时,我们似乎无法让它连接到 11211 上的 memcached。

我在启动 Zope 时在计算机上运行 tcpdump,但它甚至没有尝试连接。

我已经从 Zope 服务器远程登录到 memcached 服务器(与 ZEO 服务器相同)来测试连接,效果很好。

我尝试了两个不同的 Zope 产品服务器,结果是相同的。

我们的旧设置(4.2.5)在另一个产品服务器上运行,当我们启动它时,我们得到了预期的行为,并且它很好地连接到了 memcached。不幸的是,我们还有一个 4.3.2 设置(与 prod 相同)在 pre-prod 中运行,它也运行得很好。我无法识别设置中的任何实质性差异。

所有系统都运行独立的(不受系统/apt控制的)Python 2.7s。

zope.conf 的相关部分

# Beaker Configuration
zope-conf-additional =
<product-config beaker>
    cache.type              ext:memcached
    cache.url               ${ips:memcached}
    cache.data_dir          ${buildout:directory}/var/cache/data
    cache.lock_dir          ${buildout:directory}/var/cache/lock
    cache.regions           short, long
    cache.short.expire      60
    cache.long.expire       3600

    session.type            ext:memcached
    session.url             ${ips:memcached}
    session.data_dir        ${buildout:directory}/var/sessions/data
    session.lock_dir        ${buildout:directory}/var/sessions/lock
    session.key             beaker.session
    session.secret          magicalsecretcornedbeefhash
</product-config>

zcml = 集体烧杯

versions.cfg 中的相关版本:

# Beaker
Beaker = 1.6.4
Products.BeakerSessionDataManager = 1.1
collective.beaker = 1.0b3
python-memcached = 1.47

我已经测试过 ${ips:memcached} 在启动时生成正确的值。 Zope 日志中不会记录任何错误,但不会创建烧杯 session ,也不会尝试连接 memcached。 Memcached 运行良好,但没有生成日志(似乎从来没有)。

关于可能导致此问题的任何想法或建议都会有所帮助。更多背景:

Ubuntu 12.04.4 LTS
Linux 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

垃圾箱/构建:

#!/opt/zope/pythons/python-2.7/bin/python

import sys
sys.path[0:0] = [
    '/opt/zope/buildouts/FOO/eggs/distribute-0.6.28-py2.7.egg',
    '/opt/zope/buildouts/FOO/eggs/zc.buildout-1.7.1-py2.7.egg',
]

最佳答案

转向生产时,请记住 Products.BeakerSessionDataManager README 中的最后一部分:

3. In the ZMI, delete the ``session_data_manager`` object and add a
   ``Beaker Session Data Manager``.

关于session - 基于 Memcached 的烧杯 session 未在 Zope 启动时初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800861/

相关文章:

php - 登录 Kohana 时出现错误消息

android - 如何清理在 WebView 中创建的 session ?

php - 具有 session 登录表单的 Mysqli 和 Php 保持失败

php - 基于内存的数据库可以取代对缓存的需求吗?

ruby-on-rails - Ruby on Rails 偷偷地将嵌套的哈希键从符号更改为字符串

java - Danga 客户端保存的 memcached 条目与 Spy 客户端兼容吗?

python - 如果我想在内存缓存中存储一​​个 None 值怎么办?

非站点管理员用户的 Ploneboard 管理员角色

plone - "override"是否可能只是产品的工作流程?

plone - 使用 setattr 在 Plone 的内容类型中设置简单属性是一种不好的做法(我的意思是,它将来会困扰我吗)?