2012-04-06 8 views
9

Ich habe Cloudfront eingerichtet, um statische Bilder, js, CSS-Dateien für www.lottoresults.ie bereitzustellen. Ich habe einen benutzerdefinierten Ursprungsserver verwendet.Cloudfront cache-control Header fehlen

Der Name der Cloudfront-Domain, die ich eingerichtet habe, lautet icdn.lottoresults.ie. Ich habe dies eingerichtet mit Bind9 DNS, mit icdn.lottoresults.ie ein CNAME für die Cloudfront Distro.

Das ist alles in Ordnung.

Allerdings, für Website-Optimierung (Yslow, Google Pagespeed etc), möchte ich Cache-Kontrolle und Expires Header gesetzt haben, und ich will nicht Etags.

Um dies zu tun, ich habe folgend in meiner .htaccess-Datei für die doc_root von www.lottoresults.ie:,

Header unset Pragma 
FileETag none 
Header unset ETag 

<FilesMatch "(.*)\.(ico|jpg|jpeg|png|gif|js|css|swf)$"> 
ExpiresActive on 
ExpiresDefault "access plus 1 year" 
Header set Cache-Control "max-age=1864000, public" 
Header unset Last-Modified 
</FilesMatch> 

Das Problem ist, dass für Vermögenswerte kommen aus der Cloudfront-Distribution (ICDN) Ich habe keine Cache-Kontrolle oder läuft Kopfzeilen ab, aber ich habe Etags - noch für www habe ich Cache-Kontrolle und läuft Kopfzeilen ab, und keine Etags.

Wenn ich ein Asset aus meiner Cloudfront-Domain abfrage, habe ich keine Cache-Kontrolle oder Expires-Header, aber ich habe Etags.

curl -I -L http://icdn.lottoresults.ie/images/green-header.jpg

HTTP/1.0 200 OK 
Date: Sun, 01 Apr 2012 22:58:30 GMT 
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch 
Last-Modified: Mon, 08 Aug 2011 20:23:00 GMT 
**ETag**: "28a213-19b-4aa0436a1b100" 
Accept-Ranges: bytes 
Content-Length: 411 
Content-Type: image/jpeg 
Age: 22137 
X-Cache: Hit from cloudfront 
X-Amz-Cf-Id: AV55dR4_vWHtlTbU6E9M2tkh9reoAwZcHlD4y9csetK6B6Ey8gDPJA= 
Via: 1.0 8adf6ec3585d73c680b4a6d5052988d8.cloudfront.net (CloudFront) 
Connection: close 

Doch wenn ich den gleichen Vermögenswert von meinem Ursprungsserver abfragen, erhalte ich die folgenden, die Cache-Steuerung beinhaltet, läuft ab, und keine Etags.

curl -I -L http://www.lottoresults.ie/images/green-header.jpg

HTTP/1.1 200 OK 
Date: Fri, 06 Apr 2012 20:50:08 GMT 
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch 
Accept-Ranges: bytes 
Content-Length: 411 
**Cache-Control**: max-age=1864000, public 
**Expires**: Sat, 06 Apr 2013 20:50:08 GMT 
Content-Type: image/jpeg 

Jede Hilfe oder Ratschläge sehr geschätzt.

Dank Paul

Antwort

15

Ich glaube, ich weiß, was das war, für alle anderen, die gleiche Problem haben könnte.

Es ist eine Art von PEBKAC - Ich muss ungültig die Vermögenswerte, bevor sie neue Header erwerben.

z. Ich habe eine neue Datei, images/zoom2.gif, und es sieht richtig:

curl -I -L http://icdn.lottoresults.ie/images/zoom2.gif

HTTP/1.0 200 OK 
Date: Fri, 06 Apr 2012 23:00:24 GMT 
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch 
Accept-Ranges: bytes 
Content-Length: 1849 
Cache-Control: max-age=1864000, public 
Expires: Sat, 06 Apr 2013 23:00:24 GMT 
Content-Type: image/gif 
Age: 29 
X-Cache: Hit from cloudfront 
X-Amz-Cf-Id:   vPPBdJpw0ZI_J2trHyECnE2UBeQO9NsQZD9GSvl3GIVAZuQN5lz1ZQ==,J4bBHfF5lKEpjRPLZVYpS9HUdAKEOLEe-Gy3-a_x4PsLPrdWuRg93Q== 
Via: 1.0 00204466f749ba432b50dc49d604c534.cloudfront.net (CloudFront) 
Connection: close 
+0

+1 für Ihre Lösung nach oben, danke! –

+0

danke für die Veröffentlichung Ihrer Lösung, es hat mir auch geholfen! –

+0

Die URL ist nicht mehr gültig. = ( –

Verwandte Themen