Apache HTTP 伺服器

當 Apache HTTP 伺服器作為來源伺服器前端的反向 Proxy 時 (自行託管設定,不含 AEM Dispatcher),就會套用此設定。 這會將代理式流量 (來自 AI 機器人和 LLM 使用者代理的要求) 路由至邊緣最佳化後端服務 (live.edgeoptimize.net)。 真人訪客和 SEO 機器人仍照常由您的來源伺服器提供服務。 若要測試設定,在完成設定之後,請於回應中尋找 x-edgeoptimize-request-id 標頭。

此整合是一組原生 Apache Include檔案,不需要部署任何程式碼或工作程式。 您只需下載三個檔案、設定 API 金鑰,並將兩行新增至虛擬主機在虛擬主機中新增兩行 Include 指令即可完成。

先決條件

設定 Apache 路由規則之前,請確定您已準備好以下項目:

  • 已啟用下列模組的 Apache HTTP 伺服器 2.4 或更新版本:proxyproxy_httpsslrewriteheadersenvsetenvif
  • 可存取您的 Apache 設定 (網站的 <VirtualHost>) 以及重新載入 Apache 的功能。
  • 從Edge UI擷取的Adobe Brand Visibility最佳化API金鑰。 相關步驟請參閱檢索 API 金鑰
  • (選用) 若要測試中繼路由,請參閱中繼 API 金鑰

設定

1. 下載設定檔

邊緣最佳化程式碼範例存放庫下載三個邊緣最佳化引入檔,並將其放置於 Apache 伺服器上的目錄 (例如 conf/oae/):

檔案
用途
oae-routing.conf
偵測 AI 機器人、插入邊緣最佳化標頭、將 HTML 頁面請求路由至後端,並設定快取隔離與容錯移轉。
oae-failover.conf
若邊緣最佳化傳回錯誤,會重新將原始請求傳送至來源伺服器。
domains.conf
依網域啟用 Optimize at Edge,並保存您的 API 金鑰。

您不需要修改 oae-routing.confoae-failover.conf,直接使用原始內容即可。

2. 啟用網域並設定 API 金鑰 (domains.conf)

編輯domains.conf,並為每個要啟用的網域新增一行設定。 以您的網域取代主機,並使用Adobe Brand Visibility UI中的金鑰取代YOUR_API_KEY。 未列出的網域仍會維持原有路由,因此您可以一次啟用一個網域。

SetEnvIfExpr "%{HTTP_HOST} =~ m#(?i)^(www\.)?example\.com(:\d+)?$#" OAE_DOMAIN_ENABLED=1 OAE_API_KEY=YOUR_API_KEY

3. 將檔案加入至虛擬主機

在現有的 <VirtualHost *:443> 中新增兩行 Include 指令。 路由檔案須放在重寫與 ProxyPass 規則​之前;容錯移轉檔案則放在其​之後。 在下方範例中,只有標記為 #NEWLINE 的內容需要新增至邊緣最佳化,其餘項目 (如 ServerNameProxyPass 等) 皆為您現有且無須修改的設定。

Define OAE_CONF_DIR conf/oae                       #NEWLINE  directory holding the OAE include files

<VirtualHost *:443>
    ServerName www.example.com

    Include "${OAE_CONF_DIR}/oae-routing.conf"     #NEWLINE  OAE routing — BEFORE your Rewrite & ProxyPass rules

    # --- your existing rewrite rules and ProxyPass to origin ---
    ProxyPass        "/" "https://www.example.com/"
    ProxyPassReverse "/" "https://www.example.com/"

    Include "${OAE_CONF_DIR}/oae-failover.conf"    #NEWLINE  OAE failover — AFTER your ProxyPass rules
</VirtualHost>

4. 重新載入 Apache

驗證設定後,請重新載入 Apache 以套用變更。

NOTE
機器人最佳化和真人回應會自動保留在個別的快取項目中 (路由檔案已設定 Vary: x-edgeoptimize-config)。 如果 Apache 已使用 mod_cache,請確認已設定 CacheQuickHandler Off,以確保系統會在邊緣最佳化標頭設定完成後才進行快取尋找。

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

如果您的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)
不存在

流量路由的狀態也可以在Adobe Brand Visibility UI中檢視。 瀏覽至​ 客戶組態 ​並選取​ CDN組態 ​標籤。

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

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

recommendation-more-help
brand-visibility-help-main-toc