Fastly(BYOCDN)

이 구성은 에이전틱 트래픽(AI 봇 및 LLM 사용자 에이전트의 요청)을 Edge Optimize 백엔드 서비스(live.edgeoptimize.net)로 라우팅합니다. 사람 방문자와 SEO 봇은 기존과 동일하게 사용자의 원본 서버에서 계속 제공됩니다. 구성을 테스트하려면 설정이 완료된 후 응답에서 헤더 x-edgeoptimize-request-id를 찾습니다.

사전 요구 사항

Fastly VCL 규칙을 설정하기 전에 다음을 확인하십시오.

  • 도메인에 대한 Fastly 액세스
  • LLM Optimizer 온보딩 프로세스 완료
  • LLM Optimizer로 CDN 로그 전달 완료
  • LLM Optimizer UI에서 검색한 Edge Optimize API 키
  • (선택 사항) 스테이징 라우팅을 테스트하려면 선택 사항: 이 페이지의 끝에 있는 스테이징 호스트 이름에서 라우팅 테스트​를 참조하십시오.

프로덕션 Edge 최적화 API 키를 검색하는 단계:

  1. LLM Optimizer에서 고객 구성​을 열고 CDN 구성 탭을 선택합니다.

    고객 구성으로 이동

  2. AI 에이전트에 최적화 배포 섹션을 찾습니다. 최적화 엔진 활성화 확인란을 선택합니다.

    AI 에이전트에 최적화 배포 — 보류 중

  3. 확인 대화 상자에서 활성화​를 선택합니다.

    최적화 엔진 확인 대화 상자 활성화

  4. 세부 정보 보기​를 선택합니다. 최적화 배포 세부 정보 대화 상자에서 프로덕션 API 키​을(를) 복사합니다(필드 옆 사용).

    배포 최적화 세부 정보의 프로덕션 API 키

    note
    NOTE
    대화 상자에서 설정이 완료되지 않았음을 보여줄 수 있습니다. 이는 라우팅을 확인할 때까지 발생합니다. IT 또는 CDN 팀이 구성을 완료할 수 있도록 API 키를 복사할 수 있습니다.

또한 위 단계에 대한 도움이 필요한 경우 Adobe 계정 팀 또는 llmo-at-edge@adobe.com에 문의하십시오.

구성

다음 세 가지 VCL 스니펫을 Fastly 서비스에 추가합니다. 이러한 스니펫은 Edge Optimize로의 라우팅 에이전틱 요청, 캐시 키 분리, 그리고 기본 원본으로의 장애 조치를 처리합니다.

Fastly VCL

VCL 스니펫 추가

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;
}

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";
  set req.backend = F_Default_Origin;
  restart;
}

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 헤더가 포함됩니다.

시나리오
비헤이비어
Edge Optimize는 2XX를 반환합니다.
최적화된 응답을 클라이언트에 제공합니다.
Edge Optimize는 4XX 또는 5XX를 반환합니다.
요청이 다시 시작되고 기본 원본에서 제공됩니다.
장애 조치(Failover) 응답
헤더 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-id
있음 — 고유한 요청 ID가 포함되어 있습니다.
없음
x-edgeoptimize-fo
장애 조치가 발생한 경우에만 표시됩니다(값: 1).
없음

LLM Optimizer UI에서 트래픽 라우팅 상태를 확인할 수도 있습니다. 고객 구성(으)로 이동하고 CDN 구성 탭을 선택합니다.

AI 에이전트에 최적화 배포 — 완료됨

선택 사항: 스테이징 호스트 이름에서 라우팅을 테스트합니다

프로덕션 라우팅을 활성화하기 전에 더 낮은 환경에서 라우팅을 확인하려는 경우 스테이징 호스트 이름을 구성할 수 있습니다.

요구 사항

  • 스테이징 호스트 이름은 프로덕션과 동일한 등록 가능한 도메인​에 있어야 합니다(예: 프로덕션이 https://www.example.com인 경우 https://staging.example.com).
  • 사이트당 one 스테이징 도메인만. 저장되면 Adobe에 문의하지 않으면 변경할 수 없습니다.

스테이징 API 키 가져오기

  1. 고객 구성​을 열고 CDN 구성​을 선택합니다.
  2. AI 에이전트에 최적화 배포​에서 단계 도메인 추가(또는 스테이징 도메인이 이미 구성된 경우 단계 도메인)를 선택합니다.
  3. https://을(를) 포함한 전체 스테이징 URL을 입력하고 도메인 설정​을(를) 선택하십시오.
  4. 확인 대화 상자에서 스테이징 API 키를 복사합니다.

스테이징 도메인 API 키

스테이징 API 키를 사용하여 스테이징 환경에 동일한 라우팅 규칙을 배포합니다.

스테이징 보트 트래픽 테스트

https://staging.example.com/page.html을 실제 스테이징 URL 및 경로로 바꿉니다. 성공: 응답에 x-edgeoptimize-request-id 헤더가 포함되어 있습니다.

도움이 필요하면 llmo-at-edge@adobe.com에 문의하세요.

curl -svo /dev/null https://staging.example.com/page.html \
  --header "user-agent: chatgpt-user"

사용 가능한 기회, 자동 최적화 워크플로 및 FAQ를 포함하여 Edge에서 최적화에 대해 자세히 알아보려면 Edge에서 최적화 개요로 돌아가십시오.

recommendation-more-help
llm-optimizer-help-main-toc