Amazon CloudFront 배포판에서 Server, X-Cache, X-Forwarded-Host 또는 X-Forwarded-Server와 같은 HTTP 응답 헤더를 제거하거나 수정하고 싶습니다.
간략한 설명
수정하거나 제거하려는 응답 헤더를 기반으로 다음 해결 방법 중 하나를 선택합니다.
- Server 헤더의 값을 무조건 수정하거나 제거하려면 응답 헤더 정책을 사용하십시오.
- 특정 조건에 맞게 Server 헤더 값을 수정하려면 CloudFront 함수를 사용하십시오.
- X-Forwarded-Host 또는 X-Forwarded-Server 헤더를 제거하려면 사용자 지정 헤더를 사용하십시오.
- X-Cache 헤더는 제거하거나 수정할 수 없습니다. X-Cache 헤더는 CloudFront 캐시, 함수 또는 오리진과 같은 헤더의 소스를 표시하므로 그대로 유지되어야 합니다.
참고: CloudFront는 열람자에게 보내는 응답에 자체 Server 및 X-Cache 헤더를 추가합니다. CloudFront는 사용자가 응답 헤더 정책을 사용하여 오리진 응답에서 헤더를 제거하는 경우에도 헤더를 추가합니다.
해결 방법
응답 헤더 정책을 사용하여 Server 헤더 수정 또는 제거
Server 헤더를 수정하려면 다음 단계를 완료하십시오.
- CloudFront 콘솔을 엽니다.
- 탐색 창에서 정책을 선택한 다음 응답 헤더 탭을 선택합니다.
- 응답 헤더 정책 만들기를 선택합니다.
- 세부 정보 섹션에서 이름에 정책 이름을 입력합니다.
- 사용자 지정 헤더 섹션에서 헤더 추가를 선택합니다.
- 이름에 서버를 입력합니다.
- 값에 Server 헤더 값을 입력합니다.
- 사용자 지정 Server 헤더에 오리진 재정의 옵션을 선택한 다음 만들기를 선택합니다.
- CloudFront 배포판에서 원하는 동작에 응답 헤더 정책을 연결합니다.
CloudFront에서 변경 사항을 배포한 다음 정책에 지정된 사용자 지정 값으로 Server 헤더 값을 재정의합니다.
Server 헤더를 제거하려면 다음 단계를 완료하십시오.
- CloudFront 콘솔을 엽니다.
- 탐색 창에서 정책을 선택한 다음 응답 헤더 탭을 선택합니다.
- 응답 헤더 정책 만들기를 선택합니다.
- 세부 정보 섹션에서 이름에 정책 이름을 입력합니다.
- 헤더 제거 섹션에서 헤더 추가를 선택합니다.
- 이름에 Server 서버를 입력한 다음 만들기를 선택합니다.
- CloudFront 배포판에서 원하는 동작에 응답 헤더 정책을 연결합니다.
CloudFront에서 변경 사항을 배포한 다음 Server 헤더 값을 CloudFront 값으로 바꿉니다.
CloudFront 함수를 사용하여 Server 헤더를 특정 조건에 맞게 수정
Server 헤더 값을 특정 조건에 대해 지정된 동작의 사용자 지정 값으로 재정의하려면 다음 단계를 완료하십시오.
- CloudFront 콘솔을 엽니다.
- 탐색 창에서 함수를 선택한 다음 함수 만들기를 선택합니다.
- 이름에 함수의 이름을 입력합니다.
- 런타임에서 cloudfront-js-2.0을 선택합니다.
- 함수 만들기를 선택합니다.
- 코드 편집기의 개발 탭에서 다음 코드를 입력합니다.
function handler(event) {
var response = event.response;
var headers = response.headers;
if ('server' in headers && headers.server.value === 'YOUR_CONDITIONAL_VALUE') {
headers.server.value = 'YOUR_CUSTOM_VALUE';
}
return response;
}
참고: YOUR_CONDITIONAL_VALUE를 조건부 값으로 바꾸고 YOUR_CUSTOM_VALUE를 Server 헤더 값으로 바꾸십시오.
- 변경 사항 저장을 선택합니다.
- CloudFront 배포판에서 원하는 동작에 함수를 연결합니다.
CloudFront 함수가 함수에 정의된 특정 조건의 동작에 대한 사용자 지정 값으로 Server 헤더를 재정의합니다.
사용자 지정 헤더를 사용하여 "X-Forwarded-Host" 또는 "X-Forwarded-Server" 헤더 제거
다음 단계를 완료하십시오.
-
Lambda@Edge 함수를 만듭니다.
-
Lambda@Edge 함수에 대한 트리거를 추가합니다.
Node.js 내의 다음 예제 함수는 X-Forwarded-Host 및 X-Forwarded-Server 헤더를 제거합니다.
export const handler = async (event) => {
const response = event.Records[0].cf.response;
const headers = response.headers;
// Remove X-Forwarded-Host header
delete headers['x-forwarded-host'];
// Remove X-Forwarded-Server header
delete headers['x-forwarded-server'];
return response;
};
-
Lambda@Edge 함수를 배포한 다음 CloudFront 배포판의 열람자 요청 트리거에 이 함수를 연결합니다.
-
요청을 오리진에 전달하기 전에 트리거를 사용하여 지정된 헤더를 제거하십시오.
관련 정보
응답 헤더 정책 이해
CloudFront Functions를 사용하여 엣지에서 사용자 지정
Lambda@Edge를 사용하여 엣지에서 사용자 지정