Fastly 설정
다음 스크린샷은 콘텐츠를 전달하도록 Fastly을(를) 구성하는 방법을 보여 줍니다. 필수 설정은 빨간색 원으로 표시됩니다.
Fastly에 대한 푸시 무효화 설정
푸시 무효화는 작성자가 콘텐츠 변경 사항을 게시할 때마다 고객의 프로덕션 CDN(예: www.yourdomain.com
)에 있는 콘텐츠를 자동으로 제거합니다.
콘텐츠는 URL 및 캐시 태그/키로 제거됩니다.
푸시 무효화는 프로젝트 구성(Sharepoint의 Excel 통합 문서 이름 .helix/config.xlsx
또는 Google 드라이브의 Google 시트 이름 .helix/config
)에 특정 속성을 추가하여 사용할 수 있습니다.
구성 속성:
Fastly API 토큰을 만들려면
- 개인 API 토큰(으)로 이동
- "Create Token" 클릭,
- 이름(예:
"Production Site Purge Token"
) 입력 - 드롭다운 목록에서 "특정 서비스" 및 프로덕션 서비스를 선택합니다.
- "콘텐츠 선택 제거(purge_select) — URL 또는 대리 키별로 제거" 확인란을 선택합니다.
- "만료 기간 제한 없음" 선택,
- "Create Token" 클릭,
- 팝업 창에 표시된 생성된 토큰 값을 복사합니다.
이 도구를 사용하여 자격 증명의 유효성을 검사할 수 있습니다.
Fastly 서비스 만들기
Fastly 관리 UI(으)로 이동하여 서비스 만들기, CDN을 선택합니다.
도메인 추가
프로덕션 도메인(예: www.mydomain.com
) 추가:
원본 구성
원본(예: main--mysite--hlxsites.aem.live
)을 추가하고 다음에 대한 기본 설정을 유지합니다.
- 기본 호스트 재정의
- 기본 압축
- TLS 및 호스트 강제 실행
새 구성에서 오른쪽 상단 모서리의 "구성 편집"과 "편집할 버전 1 복제"를 클릭합니다.
사이드바에서 "원본" 아래의 "호스트"를 선택하고 연필 아이콘을 클릭하여 호스트 설정을 변경합니다.
아래로 스크롤하여 Shielding 을(를) Ashburn Metro (IAD)
(필수가 아니지만 권장 설정)으로 변경합니다.
"업데이트"하는 것을 잊지 마십시오.
VCL 코드 조각 만들기
다음 VCL 코드를 사용하여 recv
서브루틴에 대한 VCL 코드 조각을 만듭니다.
if (fastly.ff.visits_this_service == 0) {
# edge delivery node
if (req.url.qs != "") {
# remember query string
set req.http.X-QS = req.url.qs;
if (req.url.path !~ "/media_[0-9a-f]{40,}[/a-zA-Z0-9_-]*\.[0-9a-z]+$"
&& req.url.ext !~ "(?i)^(gif|png|jpe?g|webp)$"
&& req.url.ext != "json"
&& req.url.path != "/.auth") {
# strip query string from request url
set req.url = req.url.path;
}
}
}
다음 VCL 코드를 사용하여 miss
및 pass
하위 루틴에 대한 추가 VCL 코드 조각을 만듭니다.
set bereq.http.X-BYO-CDN-Type = "fastly";
set bereq.http.X-Push-Invalidation = "enabled";
참고: X-Push-Invalidation: enabled
요청 헤더를 사용하면 긴 캐시 TTL을 포함하는 푸시 무효화를 사용할 수 있습니다.
다음 VCL 코드를 사용하여 deliver
코드 조각을 만듭니다.
if (fastly.ff.visits_this_service == 0) {
# on edge delivery node
if (
http_status_matches(resp.status, "301,302,303,307,308")
&& req.http.X-QS
&& resp.http.location
&& resp.http.location !~ "\?.*\z"
) {
# preserve request query string in redirect location
set resp.http.location = resp.http.location "?" req.http.X-QS;
}
}
마지막으로 다음 VCL 코드를 사용하여 deliver
코드 조각을 만듭니다.
unset resp.http.Age;
if (req.url.path !~ "\.plain\.html$") {
unset resp.http.X-Robots-Tag;
}
모든 단계를 완료하고 서비스 버전을 활성화한 후 다음을 모두 설정해야 합니다.
선택 사항: 원본 요청 인증
토큰 기반 사이트 인증을 사용하도록 설정한 경우 사이드바에서 콘텐츠 → 헤더로 이동한 다음 다음 설정을 사용하여 "헤더를 만듭니다."
- 이름: 원본 인증
- 유형: 요청/설정
- 대상:
http.Authorization
- Source:
"token <your-token-here>"
(따옴표를 잊지 말고<your-token-here>
을(를) 토큰 기반 사이트 인증에서 검색된 사이트 토큰으로 바꾸기 - 토큰은hlx_
(으)로 시작) - 설정된 경우 무시: 아니요
- 우선 순위: 10
메모
Fastly 설정에서는 aem.live 또는 다른 Edge Delivery Services 출처를 거치는 요청에 Fastly의 차세대 웹 응용 프로그램 방화벽을 사용하지 않아야 합니다. Edge Delivery Services과 함께 WAF을 활성화하면 잘못된 콘텐츠가 전달될 수 있습니다.
Edge Delivery Services은 견고한 공유 및 확장성이 뛰어난 인프라에서 실행되므로 웹 애플리케이션 방화벽이 필요하지 않습니다. WAF이 일반적으로 가로채는 요청은 CDN에서 종료됩니다.