Fastly(BYOCDN)
이 구성은 에이전틱 트래픽(AI 봇 및 LLM 사용자 에이전트의 요청)을 Edge Optimize 백엔드 서비스(live.edgeoptimize.net)로 라우팅합니다. 사람 방문자와 SEO 봇은 기존과 동일하게 사용자의 원본 서버에서 계속 제공됩니다. 구성을 테스트하려면 설정이 완료된 후 응답에서 헤더 x-edgeoptimize-request-id를 찾습니다.
사전 요구 사항
Fastly VCL 규칙을 설정하기 전에 다음을 확인하십시오.
- 도메인에 대한 Fastly 액세스
- LLM Optimizer UI에서 검색한 Edge Optimize API 키 단계는 API 키 검색을 참조하십시오.
- (선택 사항) 스테이징 라우팅을 테스트하려면 스테이징 API 키를 참조하십시오.
구성
다음 세 가지 VCL 스니펫을 Fastly 서비스에 추가합니다. 이러한 스니펫은 Edge Optimize로의 라우팅 에이전틱 요청, 캐시 키 분리, 그리고 기본 원본으로의 장애 조치를 처리합니다.
vcl_recv 스니펫
unset req.http.x-edgeoptimize-url;
unset req.http.x-edgeoptimize-config;
unset req.http.x-edgeoptimize-api-key;
unset req.http.x-edgeoptimize-fetcher-key; # Optional (required only in case of WAF)
if (!req.http.x-edgeoptimize-request
&& req.http.user-agent ~ "(?i)(AdobeEdgeOptimize-AI|ChatGPT-User|GPTBot|OAI-SearchBot|PerplexityBot|Perplexity-User)") {
set req.http.x-forwarded-host = req.http.host; # required for identifying the original host
set req.http.x-edgeoptimize-url = req.url; # required for identifying the original url
set req.http.x-edgeoptimize-config = "LLMCLIENT=TRUE;"; # required for cache key
set req.http.x-edgeoptimize-api-key = "<YOUR API KEY>"; # required for identifying the client
set req.http.x-edgeoptimize-fetcher-key = "<YOUR FETCHER KEY>"; # Optional (required only in case of WAF)
set req.backend = F_EDGE_OPTIMIZE;
return(lookup);
}
vcl_hash 스니펫
if (req.http.x-edgeoptimize-config) {
set req.hash += "edge-optimize";
set req.hash += req.http.x-edgeoptimize-config;
}
vcl_deliver 스니펫
if (req.http.x-edgeoptimize-config && resp.status >= 400) {
set req.http.x-edgeoptimize-request = "failover";
restart;
}
if (req.http.x-edgeoptimize-config) {
return(deliver);
}
if (!req.http.x-edgeoptimize-config && req.http.x-edgeoptimize-request == "failover") {
set resp.http.x-edgeoptimize-fo = "1";
}
장애 조치(Failover)
vcl_deliver 스니펫은 장애 조치를 자동으로 처리합니다. Edge Optimize가 4XX 또는 5XX 오류를 반환하는 경우 요청이 다시 시작되고 기본 원본으로 다시 라우팅되어 최종 사용자가 응답을 계속 수신합니다. 장애 조치(Failover) 응답에는 x-edgeoptimize-fo: 1 헤더가 포함됩니다.
2XX를 반환합니다.4XX 또는 5XX를 반환합니다.x-edgeoptimize-fo: 1를 포함합니다.방화벽 규칙을 통해 Edge에서 최적화 허용(선택 사항)
CDN에서 WAF 또는 보트 관리자를 사용하는 경우:
-
Edge 서비스에서 최적화 서비스를 통해 원본 콘텐츠를 가져올 수 있도록 WAF 또는 봇 관리자에서
*AdobeEdgeOptimize/1.0*사용자 에이전트를 최적화합니다. -
방화벽에 사용자 에이전트 이외의 추가 확인이 필요한 경우 암호를 생성하고(예:
openssl rand -hex 32):- 다른
x-edgeoptimize-*헤더와 함께 라우팅 규칙에 암호가 포함된x-edgeoptimize-fetcher-key을(를) 추가합니다. x-edgeoptimize-fetcher-key이(가) 같은 암호와 일치하는 요청을 허용하도록 WAF 또는 보트 관리자 규칙을 추가합니다.
- 다른
-
Edge에서 최적화 는 이 헤더를 있는 그대로 전달합니다. — 전체 키 라이프사이클을 소유합니다.
설정 확인
설정을 완료한 후 봇 트래픽이 Edge Optimize로 라우팅되고 있으며 사람 트래픽이 영향을 받지 않는지 확인합니다.
1. 봇 트래픽 테스트(최적화해야 함)
에이전틱 사용자 에이전트를 사용하여 AI 봇 요청을 시뮬레이션합니다.
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: chatgpt-user"
성공적인 응답에는 요청이 Edge Optimize를 통해 라우팅되었음을 확인하는 x-edgeoptimize-request-id 헤더가 포함됩니다.
< HTTP/2 200
< x-edgeoptimize-request-id: 50fce12d-0519-4fc6-af78-d928785c1b85
2. 사람 트래픽 테스트(영향을 받지 않아야 함)
일반 사람 브라우저 요청을 시뮬레이션합니다.
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
응답에는 x-edgeoptimize-request-id 헤더가 없어야 합니다. 페이지 콘텐츠와 응답 시간은 Optimize at Edge를 활성화하기 전과 동일하게 유지되어야 합니다.
3. 두 시나리오를 구분하는 방법
x-edgeoptimize-request-idx-edgeoptimize-fo1).LLM Optimizer UI에서 트래픽 라우팅 상태를 확인할 수도 있습니다. 고객 구성(으)로 이동하고 CDN 구성 탭을 선택합니다.
사용 가능한 기회, 자동 최적화 워크플로 및 FAQ를 포함하여 Edge에서 최적화에 대해 자세히 알아보려면 Edge에서 최적화 개요로 돌아가십시오.