2011-04-27 5 views
4

Ruby on Rails 3アプリでMemcachedを使用しています。これはアクションとフラグメントキャッシングでうまく動作しますが、ページキャッシュを使用しようとすると、そのページはMemcachedではなくファイルシステムに保存されます。ページキャッシュにMemcachedを使用するようにRailsに指示するにはどうすればよいですか?私development.rbファイルでMemcachedでのページキャッシュ

config.action_controller.perform_caching = true 
config.cache_store = :mem_cache_store 

答えて

8

あなたはカント。 memcachedのページキャッシュと同等ののは、要求をRails経由で提供する必要があるため、アクションキャッシュです。ページキャッシュはRailsをバイパスするためのもので、NginxやApacheなど、サーバから提供できるファイルにデータを格納する必要があります。ページキャッシュが非常に高速なのは、それがRailsを完全にバイパスするからです。

ページのキャッシュが 生成されたページに対する要求は、これまで行くことなく、 Webサーバ(つまりApacheやnginxの)、 によって成就することができますRailsのメカニズム である:ここではRailsのドキュメントが言うことです のRailsスタックを使用します。明らかに、これは超高速の です。ウェブサーバは、文字通り ファイルシステムからファイルを提供しているので、残念ながら、それは は、(例えば、認証を必要とする ページなど)あらゆる状況に適用し、 することができない、 キャッシュの有効期限は ニーズがに対処することを課題となっています。

詳細情報hereがあります。

+0

ページキャッシュの格納場所を指定できますか? – SZH

+1

実際には、ファイルはパブリックディレクトリから提供され、クライアントに適切に配信されるため、ファイルと同じパスを持つ必要があります。たとえば、public/users/13/profile.htmlはpublic/user_13_profile.htmlに格納できません。これは、NginxまたはApache Webサーバーがこのファイルを後のパスに関連付けないためです。 –

0

チェックこの:まもなくそれを切断

http://globaldev.co.uk/2012/06/serving_memcached_pages_from_nginx/

、 "memcaches_page" GEM(バンドル、その後GemFileに追加)をインストールしてから、前のページmemcachedサーバを提供するためにnginxのを設定し、その後、memcaches_pageするcaches_pageディレクティブを変更アプリケーションにヒットします(記事で説明されています)。

関連する問題