2011-01-27 11 views
5

Sto utilizzando il CDN di Amazon Cloudfront per asset statici. Couldfront emette un Etag per ogni richiesta GET. Ho impostato metadati per tutte le mie risorse con specifiche informazioni di Cache-Control, che (come ho capito) rendono l'Etag superfluo. Metto alla prova le prestazioni di carico del mio sito su WebPageTest.org e mi ammazza per questi Etags inutili. Se sono in realtà inutili, qualcuno sa di un modo per sopprimere il loro essere emessi?Posso escludere l'emissione dell'intestazione Etag su AWS Cloudfront?

+0

Qualsiasi aggiornamento su questo? ETag sta forzando richieste di ottenere multiple (anche quando sono impostati Scade e età max). –

risposta

0

Se Cloudfront offre Etags coerenti a prescindere dal nodo da cui si scarica l'asset, questo dovrebbe minimizzare il problema. Ho provato questo facendo quanto segue:

Risolvendo a Cloudfront da due posizioni diverse, ho verificato che i CNAME risolti in insiemi di indirizzi IP completamente diversi. Il primo server ha risolto un insieme di 8 indirizzi IP nel data center LAX di Amazon (lax1.cloudfront.net), il secondo server ha risolto 8 indirizzi IP nel data center SFO di Amazon (sfo4.cloudfront.net).

Ho selezionato un oggetto nella nostra distribuzione Cloudfront e ho fatto un "wget ​​--server-response" da ogni posizione, quindi confrontato i risultati. Ho fatto questo per ogni centro dati più volte per ottenere risposte da diversi indirizzi IP in ogni datacenter.

I risultati sono stati che gli Etags erano gli stessi, i punti di riferimento di quale centro dati ho colpito e quale indirizzo IP ha risposto da quel datacenter.

Ho notato che le seguenti intestazioni sono state osservate differenze tra i server x-AMZ-id-2 x-AMZ-richiesta-id Age X-Amz-Cf-Id Via

Spero che questo aiuti ,

David

[a cura - commenti rimossi su etags basate su buona correzione sotto]

+3

Questo non è vero, le prestazioni web monitorano bug su intestazioni Etag e Last-Modified perché queste due causano viaggi di andata e ritorno non necessari sul server anche quando si ha un'estensione massima molto lunga nell'intestazione Cache-Control. Se l'Etag (e l'ultima modifica) sono usati correttamente, il risultato di questi round trip sarà il codice di stato 304. Ma la differenza qui è 300ms vs. 2ms (cache del browser) e può accumularsi se si usano molte risorse statiche (css , js, immagini). – Evgeny

1

Se si utilizza un Ser Origin ver e disabilitato ETag sul server di origine, CloudFront non aggiungerebbe ETag nelle intestazioni. L'ho verificato disabilitando ETag sul mio server di origine.

+0

C'è un modo per sopprimere Etag e Last-Modified quando si utilizza CloudFront direttamente da S3? – saver