在AEM中使用多個Dispatcher陣列設定目標快取逐出
在AEM中設定多個Dispatcher陣列可能會導致快取排清請求在使用localhost URL時路由不正確。 本文說明如何使用主機型URL來設定第二個Dispatcher排清代理程式,以確保GraphQL快取收回鎖定正確的網域和docroot。
說明 description
環境
- 產品: Adobe Experience Manager (AEM)內部部署
- 版本: 6.5
- Apache版本: 2.2 (本機測試)
- 組態:同一Apache執行個體上有多個陣列和虛擬主機;每個網域都有不同的docroots
問題/症狀
- 用於特定網域的快取排清請求錯誤地路由到同一個陣列,導致所有無效設定僅影響一個docroot,無論請求的路徑或網域為何。
- 在排清代理程式中使用localhost URL時,就會發生這種情況,導致所有請求因主機標頭評估而由上次載入的陣列處理。
解決方法 resolution
若要解決此問題,請遵循下列步驟:
- 確保每個Dispatcher陣列都設定了與其預期網域極為相符的相異虛擬主機模式。
- 設定Apache虛擬主機,讓每個ServerName或ServerAlias都對應至每個網域。
- 對於本機環境,請在主機檔案中新增專案,將每個網域對應至適當的IP位址。
- 將AEM排清代理程式設定為使用以主機為基礎的URL,而非本機主機的URL。
- 如果發佈和Dispatcher伺服器位在不同電腦上,請確定來自發佈伺服器的DNS或主機檔案解析將這些主機名稱指向Dispatcher伺服器的IP位址。
- 確認Apache在正確的連線埠(例如連線埠80)上接聽不會發生衝突。
- 透過觀察正確的路由行為,驗證透過排清代理程式傳送的快取失效請求到達各自的陣列和Docroot。
附註:
- Dispatcher會嚴格根據HTTP主機標題而不是URL路徑區段來評估陣列。
- 在排清代理程式URL中使用localhost,會導致所有請求的Host標頭都設為localhost,導致遞補路由傳送到上次載入的陣列。
- 所述設定適用於發佈和Dispatcher是否在同一台或不同伺服器上執行,前提是主機名稱解析度設定正確。
- 如果Apache已在具有適當主機對應的連線埠80上接聽,則不需要進行其他變更。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f