2012-01-20 5 views
5

Ho a Rails app che utilizza Cloudfront come CDN e pignoni per comprimere le risorse e impostare lunghe intestazioni Cache-Control.installazione Cloudfront per non recuperare mai le risorse

Prima richiesta di un asset mi dà intestazioni di risposta in questo 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 

Perfetto. Ha perso la cache da Cloudfront, lo ha scaricato dalla mia app, quindi dovrebbe caricarlo da lì ora d'ora in poi.

Ora ... se mi aggiorna la pagina ottengo queste intestazioni di risposta:

 
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 

sembra che ha colpito Cloudfront. Ottengo un 304 not modified. Quindi sembrerebbe che non sto scaricando di nuovo il file TUTTAVIA, vedo che questa richiesta viene fatta anche al mio server di origine.

Perché succede? Cloudfront non dovrebbe sempre mettere in cache le mie risorse ora? Sto facendo il versioning delle mie risorse, quindi NON voglio davvero che questo venga scaricato dal server save per la prima richiesta. C'è un modo in cui posso forzare questo tipo di comportamento?

risposta