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金鑰的步驟:
-
在 LLM Optimizer 中,開啟「客戶設定」並選取「內容傳遞網路設定」標籤。
-
找出「將最佳化部署到 AI 代理」區段。 勾選「啟用最佳化引擎」核取方塊。
-
在確認對話框中,選取「啟用」。
-
選取檢視詳細資料。 在 部署最佳化詳細資料 對話方塊中,複製生產API金鑰 (使用欄位旁的複製)。
部署最佳化詳細資料中的
note NOTE 對話方塊可能會顯示設定未完成。 在驗證路由之前,這是預期中的情形 — 您仍可複製API金鑰,讓您的IT或CDN團隊完成設定。
此外,如果您對於上述步驟需要任何協助,請聯絡您的 Adobe 帳戶團隊或 llmo-at-edge@adobe.com。
設定
將下列三個 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;
}
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 傳回 4XX 或 5XX 錯誤,該要求會重新啟動並路由回到您的預設來源,讓一般使用者仍能收到回應。 容錯移轉回應包含 x-edgeoptimize-fo: 1 標頭。
2XX4XX 或 5XXx-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-idx-edgeoptimize-fo1)您也可以在 LLM Optimizer 使用者介面中確認流量路由的狀態。 瀏覽至 客戶組態 並選取 CDN組態 標籤。
選用:測試暫存主機名稱上的路由
若您想在啟用生產製程之前,先在較低的環境中驗證製程,則可設定暫存主機名稱。
需求
- 暫存主機名稱必須位於與生產環境相同的 可登入網域 上(例如,當生產環境為
https://www.example.com時,https://staging.example.com)。 - 每個網站只有 一個 暫存網域。 儲存後,必須聯絡Adobe才能變更。
取得您的暫存API金鑰
- 開啟 客戶組態 並選取CDN組態。
- 在 將最佳化部署到AI代理程式 下,選取新增中繼網域 (或如果已設定中繼網域,則選取中繼網域)。
- 輸入包含
https://的完整暫存URL並選取設定網域。 - 從確認對話方塊複製staging 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最佳化概覽。