2012-01-20 8 views
5

Tengo a Rails app que usa Cloudfront como su CDN y piñones para comprimir activos y establecer encabezados largos Cache-Control.configuración Cloudfront para nunca volver a buscar activos

primera petición a un activo me da cabeceras de respuesta de este modo:

 
Cache-Control:public, max-age=31536000 
Connection:close 
Content-Encoding:gzip 
Content-Type:application/javascript 
Etag:"892a3afb514e3c84646835f9ef101026" 
Last-Modified:Tue, 17 Jan 2012 16:05:17 GMT 
Server:thin 1.2.11 codename Bat-Shit Crazy 
Vary:Accept-Encoding 
Via:1.0 c662f4e5a3bc7b224ce1bbecb0a23d82.cloudfront.net:11180 (CloudFront), 1.0 fc4797024fafe16fcc03e892c23f078d.cloudfront.net:11180 (CloudFront) 
X-Amz-Cf-Id:bd2a89fb81bba2513f30d6940347693ef483defb4783da06d81b002af23545c39b9176b2c7cb144f,VF69FYlYU8ezzHQp7QkU2GvEQ8NmDqEwRX-wu7H63yNqE1ZlTaAq3g== 
X-Cache:Miss from cloudfront 
X-Runtime:0.012413 
X-Ua-Compatible:IE=Edge,chrome=1 

perfecto. Falló la caché de Cloudfront, la extraje de mi aplicación, por lo que ahora debería cargarla desde allí.

Ahora ... si actualiza la página me sale estos encabezados de respuesta:

 
Connection:keep-alive 
Server:thin 1.2.11 codename Bat-Shit Crazy 
Via:1.0 86123d99569c9296c8605243e9a10621.cloudfront.net:11180 (CloudFront), 1.0 de9fc23d505dae3d19973a98bfa1eba0.cloudfront.net:11180 (CloudFront) 
X-Amz-Cf-Id:a7bf6ffb30c43d306835190d210aeb8ec794c1ff619ad7aaecbad220c1822fe165bda624ae8382e1,bcij_88KOAvLPSqEKDRSvOBjEj7atiKBCAjSbqc2cfdb-BHOTi--LA== 
X-Cache:RefreshHit from cloudfront 
X-Runtime:0.006909 
X-Ua-Compatible:IE=Edge,chrome=1 

parece que golpeó Cloudfront. Obtengo un 304 not modified. Así que parece que no estoy descargando el archivo de nuevo, SIN EMBARGO, veo que esta solicitud también se realiza en mi servidor de origen.

¿Por qué sucede esto? ¿No debería Cloudfront siempre almacenar en caché mis activos ahora? Estoy versionando mis activos, así que NUNCA quiero que esto sea recuperado del servidor para la primera solicitud. ¿Hay alguna forma en que pueda forzar este tipo de comportamiento?

Respuesta

Cuestiones relacionadas