我設置Cloudfront爲www.lottoresults.ie提供靜態圖像,js,css文件。我使用了一個自定義源服務器。Cloudfront緩存控制標頭丟失
我設置的雲端域名是icdn.lottoresults.ie。我使用Bind9 dns進行設置,icdn.lottoresults.ie是cloudfront發行版的CNAME。
這一切都很好。
但是,對於網站性能優化(Yslow,谷歌pagespeed等),我想有緩存控制和過期頭設置,我不想Etags。
要做到這一點,我在我的htaccess文件以下爲www.lottoresults.ie的doc_root的:
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>
問題是從CloudFront的發行版(ICDN)未來資產, 我沒有緩存控制或過期頭,但我有Etags - 但對於www,我確實有緩存控制和過期頭,沒有Etags。
當我從我的雲前端域查詢資產時,我沒有緩存控制或過期標題,但我確實有Etags。
捲曲-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
然而,當我從我的原始服務器查詢同一資產,我得到如下,其中包括緩存控制,過期,沒有ETag時。
捲曲-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
任何幫助或建議,不勝感激。
感謝 保羅
+1與您的解決方案跟進,謝謝! – 2012-04-07 16:52:55
感謝您發佈您的解決方案,它也幫助我! – 2013-03-17 15:16:55
網址不再有效。 =( – 2015-03-25 21:41:10