Fastly (BYOCDN)

此設定會將代理式流量 (來自 AI 機器人和 LLM 使用者代理的要求) 路由至 Edge Optimize 後端服務 (live.edgeoptimize.net)。 真人訪客和 SEO 機器人仍照常由您的來源伺服器提供服務。 若要測試設定,在完成設定之後,請於回應中尋找 x-edgeoptimize-request-id 標頭。

先決條件

設定 Fastly VCL 規則之前,請確定您具備以下條件:

  • 您網域的 Fastly 存取權。
  • 已完成 LLM Optimizer 上線流程。
  • 已經將內容傳遞網路記錄轉送至 LLM Optimizer。
  • 從 LLM Optimizer 使用者介面擷取的 Edge Optimize API 金鑰。
  • (選擇性)若要測試暫存路由,請參閱此頁面結尾的​選擇性:測試暫存主機名稱上的路由

擷取生產Edge最佳化API金鑰的步驟:

  1. 在 LLM Optimizer 中,開啟「客戶設定」並選取「內容傳遞網路設定」標籤。

    導覽至客戶設定

  2. 找出「將最佳化部署到 AI 代理」區段。 勾選「啟用最佳化引擎」核取方塊。

    將最佳化部署到 AI 代理:待處理

  3. 在確認對話框中,選取「啟用」。

    啟用最佳化引擎確認對話框

  4. 選取​檢視詳細資料。 在​ 部署最佳化詳細資料 ​對話方塊中,複製​生產API金鑰 (使用欄位旁的​複製)。

    部署最佳化詳細資料中的 生產API金鑰

    note
    NOTE
    對話方塊可能會顯示設定未完成。 在驗證路由之前,這是預期中的情形 — 您仍可複製API金鑰,讓您的IT或CDN團隊完成設定。

此外,如果您對於上述步驟需要任何協助,請聯絡您的 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";
}

容錯移轉

vcl_deliver 程式碼片段會自動處理容錯移轉。 如果 Edge Optimize 傳回 4XX5XX 錯誤,該要求會重新啟動並路由回到您的預設來源,讓一般使用者仍能收到回應。 容錯移轉回應包含 x-edgeoptimize-fo: 1 標頭。

情境
行為
Edge Optimize 傳回 2XX
最佳化的回應會傳送至用戶端。
Edge Optimize 傳回 4XX5XX
系統會重新啟動要求,並從預設來源提供。
容錯移轉回應
包含標頭 x-edgeoptimize-fo: 1

允許透過防火牆規則在Edge最佳化(選用)

如果您的CDN使用WAF或機器人管理員:

  • 允許列出WAF或機器人管理員中的*AdobeEdgeOptimize/1.0*使用者代理程式,讓Edge最佳化服務可以擷取您的來源內容。

  • 如果您的防火牆需要使用者代理程式以外的其他驗證,請產生密碼(例如,openssl rand -hex 32)並:

    • 將帶有密碼的x-edgeoptimize-fetcher-key新增到路由規則中與其他x-edgeoptimize-*標頭一起。
    • 新增WAF或機器人管理員規則以允許x-edgeoptimize-fetcher-key符合相同密碼的請求。
  • 在Edge最佳化會依原樣轉送此標題 — 您擁有完整的金鑰生命週期。

驗證設定

完成設定後,請確認機器人流量會路由至 Edge Optimize,而真人流量不受影響。

1. 測試機器人流量 (應經過最佳化)

運用代理式使用者代理模擬 AI 機器人要求:

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

成功的回應會包含 x-edgeoptimize-request-id 標頭,確認要求已經透過 Edge Optimize 進行路由:

< 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 標頭。 頁面內容和回應時間應與啟用邊緣最佳化之前維持相同。

3. 如何區分這兩種情境

頁首
機器人流量 (最佳化)
真人流量 (不受影響)
x-edgeoptimize-request-id
存在:包含唯一的要求 ID
不存在
x-edgeoptimize-fo
唯有發生容錯移轉時存在 (值:1)
不存在

您也可以在 LLM Optimizer 使用者介面中確認流量路由的狀態。 瀏覽至​ 客戶組態 ​並選取​ CDN組態 ​標籤。

將最佳化部署到 AI 代理:已完成

選用:測試暫存主機名稱上的路由

若您想在啟用生產製程之前,先在較低的環境中驗證製程,則可設定暫存主機名稱。

需求

  • 暫存主機名稱必須位於與生產環境相同的​ 可登入網域 ​上(例如,當生產環境為https://www.example.com時,https://staging.example.com)。
  • 每個網站只有​ 一個 ​暫存網域。 儲存後,必須聯絡Adobe才能變更。

取得您的暫存API金鑰

  1. 開啟​ 客戶組態 ​並選取​CDN組態
  2. 在​ 將最佳化部署到AI代理程式 ​下,選取​新增中繼網域 (或如果已設定中繼網域,則選取​中繼網域)。
  3. 輸入包含https://的完整暫存URL並選取​設定網域
  4. 從確認對話方塊複製​staging API金鑰。

中繼網域API金鑰

使用中繼API金鑰在中繼環境中部署相同的路由規則。

測試暫存機器人流量

請使用您實際的中繼 URL 和路徑取代 https://staging.example.com/page.html成功:​回應包含x-edgeoptimize-request-id標頭。

如果您需要協助,請連絡llmo-at-edge@adobe.com

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

若要進一步瞭解Edge最佳化,包括可用的機會、自動最佳化工作流程和常見問答,請返回Edge最佳化概覽

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