2012-04-06 31 views
9

Tôi đã thiết lập Cloudfront để phân phát các hình ảnh tĩnh, js, css cho www.lottoresults.ie. Tôi đã sử dụng máy chủ gốc tùy chỉnh.Đầu đề kiểm soát bộ nhớ cache trên đám mây bị thiếu

Tên miền trên đám mây mà tôi thiết lập là icdn.lottoresults.ie. Tôi thiết lập này bằng cách sử dụng Bind9 dns, với icdn.lottoresults.ie một CNAME cho distro trên cloudfront.

Tất cả đều ổn.

Tuy nhiên, để tối ưu hóa hiệu suất trang web (Yslow, google pagespeed vv), tôi muốn có bộ nhớ Cache-kiểm soát và hết hạn tiêu đề thiết lập, và tôi không muốn Etags.

Để làm điều này, tôi đã điều sau đây trong tập tin htaccess của tôi cho doc_root của 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> 

Vấn đề là đối với tài sản đến từ các distro CloudFront (icdn), Tôi không có tiêu đề Kiểm soát bộ nhớ cache hoặc Hết hạn, nhưng tôi có Etags - nhưng đối với www tôi có tiêu đề Kiểm soát bộ nhớ cache và Hết hạn và không có Etags.

Khi tôi truy vấn nội dung từ miền trên đám mây của mình, tôi không có kiểm soát Bộ nhớ cache hoặc Hết hạn tiêu đề, nhưng tôi có 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 

Tuy nhiên, khi tôi truy vấn các tài sản tương tự từ máy chủ gốc của tôi, tôi nhận được những điều sau đây, trong đó bao gồm Cache-control, Expires, và không có 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 

Bất kỳ giúp đỡ hoặc tư vấn đánh giá rất cao.

Cảm ơn Paul

Trả lời

15

Tôi nghĩ rằng tôi biết điều này là, đối với bất kỳ ai khác có thể có cùng một vấn đề.

Đó là loại PEBKAC - Tôi phải vô hiệu hóa nội dung trước khi chúng có được tiêu đề mới.

Ví dụ: Tôi đã thêm một tập tin mới, images/zoom2.gif, và có vẻ đúng:

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 cho theo dõi với giải pháp của bạn, cảm ơn! –

+0

cảm ơn bạn đã đăng giải pháp của mình, nó cũng giúp tôi! –

+0

URL không còn hợp lệ. = ( –

Các vấn đề liên quan