내용으로 건너뛰기

호스트 헤더를 오리진으로 전달하도록 CloudFront를 구성하려면 어떻게 해야 합니까?

3분 분량
0

제 Amazon CloudFront 배포에 구성되어 있는 오리진은 가상 호스팅을 사용합니다. 호스트 헤더를 오리진 서버로 전달하도록 배포를 구성하고 싶습니다.

간략한 설명

호스트 헤더를 오리진에 전달하기 위한 배포를 구성하려면 다음 작업 중 하나를 수행하십시오.

  • 캐시 정책 및 오리진 요청 정책을 생성합니다.
  • 배포의 기존 동작 설정을 편집합니다.

사용자 지정 도메인이 없는 Amazon API Gateway 오리진에 대해 사용자 지정 정책을 만드는 경우 호스트 헤더를 전달하지 마십시오. 전달하는 경우 "403 error"가 발생합니다.

중요: Amazon Simple Storage Service(Amazon S3) 오리진의 경우, CloudFront에서 호스트 헤더에 기반한 캐시를 지원하지 않습니다. 자세한 내용은 캐싱의 기준이 될 헤더 선택을 참조하십시오.

해결 방법

캐시 정책 및 오리진 요청 정책 만들기

다음 단계를 완료하십시오.

  1. CloudFront 콘솔을 엽니다.
  2. 탐색 창에서 정책을 선택합니다.
  3. 사용자 지정 정책 섹션에서 캐시 정책 만들기를 선택합니다.
  4. 캐시 키 설정헤더에서 다음 헤더 포함을 선택합니다.
  5. 헤더 추가 드롭다운 목록에서 호스트를 선택합니다.
  6. 요구 사항에 따라 캐시 정책의 다른 모든 설정을 완료합니다.
  7. 만들기를 선택합니다.
  8. 정책을 CloudFront 배포판의 관련 동작에 연결합니다.

배포의 기존 동작 설정 편집

다음 단계를 완료하십시오.

  1. CloudFront 콘솔을 엽니다.
  2. 배포를 선택합니다.
  3. 동작 탭을 선택한 다음 호스트 헤더를 전달할 경로를 선택합니다.
  4. 편집을 선택합니다.
  5. 캐시 키 및 오리진 요청레거시 캐시 설정으로 지정되었는지 확인합니다.
    참고: 레거시 캐시 설정을 선택하지 않은 경우 이전 섹션의 단계를 완료하여 캐시 정책을 만드십시오.
  6. 레거시 캐시 설정헤더에서 다음 헤더 포함을 선택합니다.
  7. 헤더 추가 메뉴에서 호스트를 선택합니다.
  8. 변경 사항 저장을 선택합니다.

(선택 사항) 헤더를 다른 이름으로 전달

사용자 지정 헤더 이름 또는 다른 헤더 이름으로 호스트 헤더 값을 전달하려면 CloudFront 함수 또는 AWS Lambda@Edge 함수를 사용하십시오.

헤더를 다른 이름으로 전달하려면 다음 단계를 완료하십시오.

  1. 수신 호스트 헤더를 확인합니다.
    참고: CloudFront 함수의 경우 열람자 요청 이벤트를 확인하십시오. Lambda@Edge의 경우 열람자 또는 오리진 요청 이벤트를 확인하십시오.
  2. 클라이언트 요청의 호스트 헤더 값을 헤더에 저장하려면 열람자 요청에서 Lambda 함수 핸들러 명령을 사용하십시오.
    참고: 예를 들어 수신 호스트 헤더가 host인 경우 동일한 값을 가진 새 헤더를 추가합니다. 다음 코드 예제를 참조하십시오.
    function handler(event) {    const request = event.request;
        const headers = request.headers;
        const host = request.headers.host.value;
        headers['x-forwarded-host'] = { "value": host }
        return request
    }
    참고: 이 예제 함수는 열람자 요청 이벤트를 활성화합니다. 
  3. 사용자 지정 헤더를 오리진에 전달하려면 X-Forwarded-Host 헤더를 허용 목록에 추가하도록 캐시 또는 호스트 요청 정책을 구성하십시오. 자세한 내용은 사용자 지정 오리진의 요청 및 응답 동작을 참조하십시오.

관련 정보

요청 헤더에 따라 콘텐츠 캐싱

정책을 통한 캐시 키 제어

댓글 없음