2012-04-06 2 views
9

Я устанавливаю Cloudfront для обслуживания статических изображений, js, css-файлов для www.lottoresults.ie. Я использовал собственный сервер происхождения.Недостатки заголовков кеша Cloudfront

Облачное доменное имя I setup is icdn.lottoresults.ie. Я установил это, используя Bind9 dns, с icdn.lottoresults.ie CNAME для облачного дистрибутива.

Это все хорошо.

Тем не менее, для оптимизации производительности сайта (Yslow, google pagespeed и т. Д.), Я хочу настроить кеширование и истечение заголовков, и я не хочу Etags.

Чтобы сделать это, я следующий в моем файле Htaccess для doc_root из 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> 

Проблема в том, что для активов, поступающих из CloudFront дистрибутиве (icdn), У меня нет заголовков Cache-Control или Expires, но у меня есть Etags - но для www у меня есть файлы Cache-Control и Expires, и нет Etags.

Когда я запрашиваю актива из облачного облачного домена, у меня нет заголовков Cache-control или Expires, но у меня есть 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 

Тем не менее, когда я запрашиваю один и тот же актив, от моего происхождения сервера, я получаю следующее, который включает в себя кэш-контроль, Expires и не ETags.

локон -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 

Любая помощь или совет высоко оценили.

Благодаря Пол

ответ

15

Я думаю, что я знаю, что это было, для кого-то, кто мог бы иметь такой же вопрос.

Это вид PEBKAC - У меня должно быть аннулировать активы до того, как они приобретут новые заголовки.

E.g. Я добавил новый файл, изображения/zoom2.gif, и это выглядит правильно:

локон -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 для следующих с вашим решением, спасибо! –

+0

спасибо за отправку вашего решения, это тоже помогло! –

+0

URL-адрес больше не действителен. = ( –

Смежные вопросы