Teniendo en cuenta que Heroku Cedar no tiene el caché de http provisto por Varnish, me gustaría usar Rack::Cache
. Me han dicho que tienen carriles 3.1.1 Rack::Cache
activa por defecto, que sólo tiene que asegurarse de tener en la configuración:Rails 3.1 y Http Page Caching
config.action_controller.perform_caching = true
y tengo que escoger un almacén de caché, para este experimento estoy usando:
config.cache_store = :memory_store
En la acción de la página que quiere almacenar he añadido las siguientes líneas:
response.header['Cache-Control'] = 'public, max-age=300'
response.header['Expires'] = CGI.rfc1123_date(Time.now + 300)
Este código se utiliza para funcionar bien con Varni sh, la primera solicitud devolvería un 200 y la siguiente (durante 5 minutos) devolvería un 304
.
Esto no ocurre con Rails 3.1 y Heroku Cedar Stack. Obtengo esos encabezados en la respuesta pero las solicitudes posteriores devuelven 200 en lugar de 304.
¿Qué estoy haciendo mal? Gracias.
¡Tienes razón! ¿Hay alguna manera de almacenar en caché en un nivel ligeramente superior? ¿Vale la pena? (por ejemplo, ¿qué ocurre si configuro un rack :: cache en config.ru antes de la aplicación Rails?) – soulnafein
no realmente ... Rack :: Cache es su mejor opción. Solo ponlo es lo más alto que puedes en tu entorno y debería darte el rendimiento que necesitas, ya que evita todo el stack de http de Rails. – leonardoborges
Ah, y te agradecería si pudieras votar la respuesta original si te ayudó :) – leonardoborges