Il controllo della cache statica influisce sulle intestazioni http per Cache-Control. Come in, il server suggerisce alle cache intermedie che l'età massima = 3600.
Varnish, Rack-Cache, Squid e altri memorizzano attivamente il contenuto generato sul server. Le chiamate al database sono costose e, anche quando una richiesta non effettua una chiamata al db, minore è l'infrastruttura che la richiesta deve attraversare, generalmente più veloce sarà.
Rack :: Cache è un middleware rack che supporta la cache conforme agli standard HTTP. Il loro FAQ page ha alcune buone informazioni sui suoi pro e contro rispetto ad altre soluzioni di caching. Ecco uno question comparing rack::cache to varnish on heroku. Rails ha anche ActiveSupport :: Cache che gestisce il frammento e il caching delle pagine. Non sono sicuro di quali siano le differenze, ma entrambe sono incluse in Rails per impostazione predefinita. Avevo detto prima che rack :: cache non era predefinito, ma mi sbagliavo.
Varnish, Squid e altri esistono all'esterno dello stack Rails davanti al server Web (ad esempio Apache/Nginx/etc) come processo separato. Sono altamente configurabili, indipendenti dalle applicazioni e hanno alcune funzionalità avanzate (come gli ACL di Squid). Varnish e altri hanno il vantaggio di ridurre al minimo l'infrastruttura che una richiesta deve passare per essere servita. Se è fresca, la richiesta colpisce Varnish e ritorna immediatamente al client. Questo probabilmente ha il maggior beneficio per i siti ad alto traffico e potrebbe essere eccessivo per le app più piccole.
Ecco un articolo su heroku detailing the use of rack::cache in Rails3. Ci sono anche dei buoni railscast su come fare la cache di pagine/frammenti in-app e sull'uso di memcached come back-end (che è molto importante). Per la vernice e altri, è possibile iniziare con this tutorial on varnish's site.
Quello che stai descrivendo suona come il caching lato server. Lo stesso Rails non ha incorporato il supporto per la memorizzazione nella cache sul lato server? – user782220
Ho scritto quella risposta a notte fonda e non l'ho chiarito molto bene. Lo aggiornerò. Rails3 ha il supporto per la cache da ActiveSupport :: Cache, quindi non sono sicuro che rack :: cache sia ridondante o meno. Mi dilungherò anche sull'uso della vernice, dammi solo un minuto. – GorrillaMcD
Ho corretto alcune informazioni errate (mi dispiace per quello). Rack :: cache e ActiveSupport :: cache fanno entrambe parte delle rotaie. Non sono sicuro di quali siano le differenze. – GorrillaMcD