gpt4 book ai didi

ruby-on-rails - 缓存 : [GET/] miss? dalli gem,memcached,rails 3.1,nginx, unicorn 生产环境

转载 作者:行者123 更新时间:2023-12-01 05:37:53 32 4
gpt4 key购买 nike

我正在努力让第一个应用程序在生产中运行。无论我做什么,我都会在我的 unicorn 日志中得到一个基本的 404 页面,无论我做什么:

cache: [GET /] miss
cache: [GET /something] miss


生产.rb

 config.cache_store = :dalli_store, 'localhost:11211'
#config.cache_store = :memory_store


在开发中一切正常(没有在开发 afaik 中跳过的缓存),并且根据用于设置 Controller Action 缓存的 rails 指南,仔细检查我的所有语法都是正确的,只有错误消息。

任何人都可以就我为什么或错过什么提供一些指示吗?在开发中工作,但不在我设置的服务器上。我非常乐意提供更多信息来解决这个问题。这是很多需要协调的事件部分,我将不胜感激。

编辑:

我从 memcached 那里获得了一些反馈,使用所有以前的选项和 -B 二进制(加上 -vv)运行它,似乎该程序甚至没有与 memcached 连接; memcached 在程序运行时不注册任何内容。

编辑:

我回到了开发和生产的本地设置;缓存有效,memcached 响应,唯一的区别是我没有通过 nginx/unicorn 运行 webrick,但如果这有助于查明我要注意的问题,也许这有一些用处和追求的方向。

编辑:

回到服务器,然后在启用缓存配置的开发模式下运行:

config.cache_classes = true config.action_controller.perform_caching = true config.cache_store = :dalli_store, '127.0.0.1:11211'



很明显,rails 没有与 memcached 连接。日志中没有任何关于尝试连接缓存的内容,并且使用 -vv 运行的 memcache 显示没有任何事件。如果我去控制台,我可以按照 dalli 基本 cli 说明手动连接,嗯。只是尝试使用 memcached 实例的各种选项不会产生任何响应。

但是,我可以在索引页面上查询 memcached 统计信息,该页面出现在我设置它的每个请求上……尽管在 rails 日志中没有显示任何关于访问 memcached 的信息。

编辑:

通过这个挣扎,发现错误是无关的......一旦我对错误引用的样式表的一些 Assets 管道问题进行排序,一切似乎都运行顺利。至少是一次学习经历。

最佳答案

Dalli 仅是二进制协议(protocol),因此请确保您的 memcached 服务器使用二进制协议(protocol)。例如,memcached 应该从以下开始:

memcached [...] -B auto [...]

此外, memcached version must be >= 1.4.0 .

更新

这些消息由 Rack::Cache 生成设置为详细日志记录模式并不意味着任何事情都一定是错误的。它们更像是一个提醒,你可以做类似的事情
expires_in 20.minutes
expires_in 3.hours, :public => true
expires_in 3.hours, 'max-stale' => 5.hours, :public => true

(在您的 Rails Controller 中),然后页面缓存可能会自动工作(并且这些消息会在任何时候从缓存中呈现页面时消失)。

关于ruby-on-rails - 缓存 : [GET/] miss? dalli gem,memcached,rails 3.1,nginx, unicorn 生产环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654447/

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