2011-10-04 75 views
4

我正在努力獲得第一個運行在生產環境中的應用程序。無論我做什麼,我得到一個基本的404頁,這在我的麒麟日誌,無論我做什麼:緩存:[GET /]錯過? dalli gem,memcached,rails 3.1,nginx,獨角獸生產環境

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

production.rb

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

一切在開發過程中工作得很好(無法在開發afaik中跳過緩存),並且重新檢查我的所有語法正確,按照導軌設置控制器操作緩存,只有錯誤或消息。

任何人都可以給一些關於也許爲什麼或什麼我失蹤的指針?在開發中工作,但不在我設置的服務器上工作。我非常樂意提供更多的信息來獲取這些信息。這是很多移動部件來協調,我會很感激任何輸入。

編輯:

我去從memcached的一些反饋,與以往所有的選項並運行它-B二進制(加-vv)看來,該計劃甚至沒有與memcached的連接;程序運行時,memcached不記錄任何內容。

編輯:

我回到了開發和生產的本地設置;緩存工作,memcached的響應,唯一的區別是我沒有通過nginx /獨角獸webrick運行,但如果這有助於查明問題,我會意識到這可能是一些用途和一個方向去追求。

編輯:

回過頭來看看這個服務器,然後在高速緩存配置開發模式運行啓用:

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

很明顯,rails沒有連接到memcached。即使嘗試連接緩存,日誌中也沒有任何內容,並且使用-vv運行的memcache不顯示任何活動。如果我去控制檯,我可以按照dalli基本的cli指令手動連接,嗯。只要用memcached實例嘗試各種選項就不會產生任何迴應。

但是,我可以查詢每個請求上出現的索引頁面上的memcached統計信息,但我沒有在rails日誌中顯示有關訪問memcached的內容。

編輯:

通過這個按倒,並發現錯誤無關....當我通過了misreferenced樣式表的一些資產管道問題進行排序,似乎一切都可以流暢運行。至少是學習經驗。

+1

的問題是什麼任何詳情,對於我們這些同樣的錯誤? – Ryanmt

回答

1

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

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

另外,memcached version must be >= 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控制器),然後頁面緩存可以自動地工作(這些消息會消失的網頁從緩存中呈現的任何時間) 。

+0

它是1.4.5 ....它開始於默認的自動協商,我只是通過ubuntu上的apt將其引入,並將其自身配置爲從服務器啓動開始。 – blueblank

+1

感謝您的幫助,變成了另一個問題,但是這提示我更好地理解集成memcached和rails – blueblank

0

您可以通過Heroku的控制檯使用Rails.cache.read('[key]')發現如果工作或沒有