2013-12-10 1 views
1

클라이언트의 웹 서버 (www.mydomain.com) Custom Origin과 함께 작동하도록 CloudFront 배포를 설정했습니다.사용자 지정 원본 리디렉션을 사용하는 CloudFront 배포

웹 웹 페이지를로드하고 Chrome 웹 속성의 네트워크 탭을 확인하면 애셋이 원 서버 (www.mydomain.com)에서 온 것으로 표시되고 "초 기자"열에는 CloudFront URL이 리디렉션으로 표시됩니다. CloudFront가 자산 요청을 원래 서버로 리디렉션한다는 것을 의미합니다. 이는 원래의 목적을 거의 상실한 것입니다.

배포본을 설정할 때, 나는 24 시간을 의미한다고 생각되는 기본값으로 TTL을 남겼다.

웹 서버 대신 S3 버킷을 원본으로 사용하면 자산이 CloudFront에서 예상대로 직접로드됩니다.

답변

6

자산의 URL에 자체 서버 도메인이 표시되면 CloudFront가 자산을 가져 와서 캐시 된 결과로 해당 리디렉션을 제공 할 때 리디렉션 응답을 수신했음을 의미합니다. 이것은 분명히 당신이 원하는 것이 아닙니다.

는 나는이 게시물에 대한 답변 중 하나를 본 후 해결 비슷한 문제가 있었다 :

Magento - Amazon Cloudfront CDN and Caching

내가 www.domain.com에 domain.com에서 리디렉션되고 CloudFront를 캐싱 및 복귀했다 리디렉션합니다. http/https 리디렉션을 사용하면 같은 결과를 볼 수 있습니다.

HTTP -> HTTPS 리디렉션을 수행하는 경우 두 가지 옵션이 있습니다. 자산을 CloudFront에 HTTP로 제공하거나 CloudFront에서 HTTPS로 요청할 수 있습니다. 후자를 수행하려면 CloudFront 원본을 "Match Viewer"로 구성해야합니다. 즉, 시청자가 HTTPS를 사용하고 있다면 CloudFront도이를 의미합니다. 사용자가 HTTP를 사용하는 경우 CloudFront는 HTTP에서 요청하고 서버에서받은 HTTPS 리디렉션을 반환하므로 클라이언트는 HTTPS로 요청을 다시 발행합니다.

우리의 경우 자산 자체는 기내에서 보호 할 필요가 없습니다. 사용자의 브라우저가 모든 HTTPS 콘텐츠를 볼 수 있도록 CloudFront에서 HTTPS로 제공되는 것이 중요합니다. 따라서 우리의 경우 CloudFront에 자산을 HTTPS로 제공 할 필요가 없습니다. 서버에서 콘텐츠를 가져 오는 방법에 관계없이 CloudFront는 응답 할 때 뷰어의 프로토콜과 일치합니다.

+0

아 좋아요. 원 서버에 https 리디렉션이 있습니다. 그렇다면 클라우드 프론트에서 제공되는 콘텐츠 *를 원 서버에서 가져 오는 것입니다. 또는 리디렉션 규칙을 변경해야합니까? – kgrote

+0

명확한 답변을 편집했습니다. 그게 도움이 되니? – DavidM

+0

안녕하세요 사용자 지정 원본을 설치하고'Match Viewer'에 맞게 구성했습니다. HTTP와 잘 작동하지만 HTTPS 요청을 HTTP로 변환합니다. –

2

늦은 대답이지만 누구든지이 문제에 직면하면 HTTPS 리디렉션을 사용하지 않아도 동일한 문제가 발생합니다.

웹 사이트가 실제로 "www.mysite.com"인 경우 Cloudfront에서 저의 기원은 "mysite.com"이었습니다. Cloudfront에서 업데이트했고 지금은 작동합니다!

관련 문제