簡體   English   中英

緩存:[GET /] miss? dalli gem,memcached,rails 3.1,nginx,unicorn生產環境

[英]cache: [GET /] miss? dalli gem, memcached, rails 3.1, nginx, unicorn production environment

我正在努力讓第一個應用程序在生產中運行。 無論我做什么,我都會在我的獨角獸日志中得到一個基本的404頁面,無論我做什么:

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

production.rb

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

一切都在開發中運行良好(沒有在開發中跳過的緩存),並且雙重檢查我根據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 stats ...雖然在rails日志中沒有顯示有關訪問memcached的信息。

編輯:

通過這個摔跤,發現錯誤是無關的....一旦我通過一些資產管道問題排序錯誤的樣式表,一切似乎運行順利。 至少是學習經歷。

Dalli只是二進制協議,因此請確保您的memcached服務器使用二進制協議。 例如,memcached應​​該以​​:

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

此外, memcached版本必須> = 1.4.0

UPDATE

這些消息是由Rack :: Cache設置為詳細日志記錄模式生成的,並不意味着任何事情都是錯誤的。 他們更像是一個提醒你可以做的事情

expires_in 20.minutes
expires_in 3.hours, :public => true
expires_in 3.hours, 'max-stale' => 5.hours, :public => true

(在你的Rails控制器中)然后頁面緩存可以自動工作(並且這些消息會在從緩存中呈現頁面時消失)。

您可以通過heroku控制台使用Rails.cache.read('[key]')來發現它是否正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM