비교적 간단한 작업을 수행하려고합니다. 사이트의 핵심 도메인으로 리디렉션하도록 몇 개의 도메인 및 하위 도메인을 설정하고 싶지만 리디렉션을 Cloudfront에 배치하고 싶습니다. 루트 경로를 리디렉션하는 것을 제외하고는 모든 것이 작동합니다. 이는 S3 버킷을 부분적으로 설명하는 XML 파일을 가져옵니다.
배경
S3
S3를 사용하면 다음 과 같이 전체 리디렉션 버킷 을 설정할 수 있습니다 .
이를 테스트하면서 웹 엔드 포인트 (brass9-com.s3-website-us-west-1.amazonaws.com)가해야 할 일을 수행합니다. brass9.com으로 리디렉션됩니다. 좋은.
클라우드 프론트
Cloudfront에서는 S3 버킷을 가리킬 수 있지만 그렇게 제안하는 방식이 잘못되었습니다. brass9-com.s3.amazonaws.com과 같이 버킷 이름을 가리키는 대신 위 의 웹 엔드 포인트를 사용해야합니다 . 그 외에는 모든 것을 기본값으로 유지하고 올바른 리디렉션 동작을 얻을 수 있습니다. 따라서 www.brass9.com/portfolio 와 같은 경로는 원하는 위치로 올바르게 리디렉션됩니다. 또한 좋습니다.
문제-루트 도메인 리디렉션
그런 다음 작동하지 않는 한 가지는 일반 www.brass9.com 에서 리디렉션하는 것입니다 . 리디렉션을 얻는 대신이 이상한 결과를 얻습니다.
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>brass9-com</Name><Prefix></Prefix>
<Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated>
</ListBucketResult>
확인... . 따라서 기본 루트 객체가 없기 때문에 이것은 완전히 예기치 않은 것은 아닙니다 . 그러나이 동작을 막기 위해 어떤 기본 루트 개체를 지정할 수 있습니까? 내가 지적해야 할 S3 리디렉션 객체의 이름은 무엇입니까? 아니면 다른 적절한 구성이 있습니까? 아니면 Cloudfront와 S3가 Amazon이 수정 해야하는 상호 작용 방식의 버그입니까?
알려진 작동하지 않는 솔루션 : 기본 루트 개체
index.html의 기본 루트 객체를 지정할 수는 있지만 아무 것도 도움이되지 않습니다. 문제를 변경하기 만합니다. Cloudfront URL은 기본 사이트 인 404 인 /index.html로 리디렉션됩니다 (index.html 파일을 사용하지 않고 서버 측 프레임 워크 기반 사이트). 서버에 index.html을 넣을 수는 있지만 처음에는 Cloudfront를 사용하는 속도가 약간 떨어집니다.
유제
한 질문은 비슷한 것을 묻지 만 내가보고있는 것 대신 XML 응답 인 빈 바이트 0 응답 을 다시 얻습니다 . 해당 문제에 대한 질문이나 해결책은 포함되어 있지 않습니다.
관련 기사
한 기사에서는 베어 도메인과 www 도메인 모두에서 전체 사이트를 제공 한다고 제안 합니다 . 이것은 사용자의 북마크, 검색 순위 등을 고정시킵니다. 이렇게하면 안됩니다.
S3 및 Cloudfront 에서 리디렉션 웹 사이트가 아닌 정적 웹 사이트를 호스팅하는 것에 대해 논의 하는 사람들도 있습니다.
그렇다면 어떻게해야합니까?
Cloudfront 구성의 스크린 샷-S3 원점을 가리키는 기본 루트 객체가 없습니다. InProgress 무시-방금 기본 루트 개체를 설정 및 해제하여 테스트했습니다.
해당 배포판의 Origin 구성 :
GET /
웹 엔드 포인트를 사용하도록 구성을 수정하기 전에 Cloudfront에서 캐시 된 응답을 볼 수 있었던 것처럼 들립니다 .