2012-09-26 3 views
0

CDN 및 캐싱을 이해하려고하는데 답변을 찾을 수 없습니다.Magento - Amazon Cloudfront CDN 및 캐싱

원 서버 캐시 된 이미지에서 아마존 cdn 캐시를 어떻게 만드나요? 그리고 그것을 시험 할 방법이 있습니까?

나는 CDN 원점 내 서버에 매핑, 그래서 모든 것이

http://cdn.mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

을 발견하지 않습니다 당신은 방화범 볼 수 있습니다

http://mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

것이 아니라 보이는 경우 magento-cached 엘리먼트는 301이 영구적으로 이동하는 반면 정적 파일은 OK 200 응답을 얻습니다. 또한 cloudfront URL을 입력하면 자동으로 magento 캐시 된 요소에 대한 내 URL로 변경되지만 정적 URL에 대한 클라우드 프론트 URL로 유지됩니다.

내가 나중에 다시 돌아 가면 하루 종일 CDN 소스를 사용하지 않아 아마존의 magento-cached css/js/images를 캐싱하지 않는다고 믿을 수 있습니다.

& js/css 최적화 캐싱을 해제하면 cloudfront cdn에 과도한 양의 http 요청이 발생합니다.

답변

3

어떤 이유에서든 Cloudfront가 서버 (원본)에 파일을 요청하면 서버가 200으로 응답하지 않습니다. 로그를 확인하고 규칙을 다시 작성하여 Cloudfront가 301 응답을 수신하는 이유를 확인해야합니다. 당신은 www가 리디렉션 규칙을 가지고있는 경우에 내가 생각할 수있는

한 설명입니다. * 등

+1

이 www. * 리디렉션이 내 문제의 원인이었습니다. 그 제안에 대해 정말 고마워. – DavidM

0

willboudle

나는 아마존 CloudFront를, S3와 아마존 OnePica Extension와 정확한 것은 구현 한

.

그래서 OnePica는 이미 S3 및 Cloudfront의 제품 이미지를 관리했습니다. 그러나 CSS & Js에 대해서는 코드를 사용자 정의해야합니다. 우리는 당연히 당신이 CloudFront를 URL로 당신에게 미디어의 URL을 변경해야 Mage_Core_Helper_Data::mergeFiles() & Mage_Core_Model_Design_Package::getMergedJsUrl($files)Mage_Core_Model_Design_Package::getMergedCssUrl($files) 방법

을 사용자 정의 할 수 있습니다. 파일의 압축을 원한다면 조언을 해주십시오. 그럼 당신은 CSS & JS 파일을 gzip하고 S3 서버에 업로드해야합니다. 희망이 도움이 될 것입니다

1

나는 비슷한 문제가있어서 그 원인은 Gordon Knoppe의 대답과 다르지 않았습니다. CloudFront CDN에서 제공해야하는 엄지 손톱 이미지가 많은 페이지가있었습니다. 이상한 것은 3 개 중 2 개가 아니었고 피들러와 함께 "301 - Permanent Redirected"를 표시하지 않는 것이 었습니다.

이미지의 URL 경로에는 대문자가 포함될 수 있으며 (일부는 수행하지 않았고 일부는 수행하지 않음) 모든 URL을 소문자로 처리하도록 작성된 다시 쓰기 규칙과 충돌 한 것으로 나타났습니다. 최종 결과는 CloudFront 요청이 200 개의 응답에만 캐시되고 경로가 소문자가 아닌 경우 301에 캐시되지 않는 것입니다. URL 경로가 모두 소문자로 수정되면 모든 것이 잘 동작합니다.