當邊緣安全加速 ESA向源站請求資源時,默認使用用戶請求域名作為HOST請求頭,若您在源站上配置了與用戶請求域名不同的站點名稱,需通過修改回源HOST請求頭,以完成有效的內容回源。
您的源站服務器需要支持通過HOST請求頭匹配不同的虛擬站點,否則該功能配置無法達到預期的功能效果。
您所設置的回源規則中的回源Host參數的生效優先級高于在DNS記錄中設置的回源Host參數,在兩處同時設置的情況下,回源規則中的回源host參數配置的值將會最終生效。
背景信息
回源Host
當邊緣安全加速 ESA節點向源站請求資源時,默認使用用戶請求域名作為HOST請求頭,用于指定請求的服務器域名。
源站將根據回源請求中的HOST請求頭(如www.example.com)返回對應站點的資源,如果您的源站上配置了多個站點(如使用了虛擬站點技術),源站將校驗回源請求中攜帶的HOST請求頭和站點名稱以返回正確的資源。您可以根據您源站的站點配置修改回源HOST請求頭,以確保正確回源。
虛擬站點技術
虛擬站點技術是一種在單個Web服務器上提供多個網站服務的技術。服務器通過使用不同的域名或主機名來區分和隔離不同的網站。當用戶請求訪問某個特定的域名或主機名時,服務器會根據請求的域名或主機名,將請求定向到相應的虛擬站點,從而提供相應的網站內容。
Nginx配置虛擬站點示例
Nginx支持通過server塊配置多個虛擬站點,本例中配置了3個虛擬站點,分別是www.example.org
、www.example.net
、www.example.com
。
Nginx優先在HTTP請求頭中查找Host
字段以確定請求需要路由到的虛擬站點,如果沒有匹配到任何一個虛擬站點,Nginx會使用默認的虛擬站點提供服務(若未配置,默認為第一個server配置為默認站點)。
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name example.net www.example.net;
...
}
server {
listen 80;
server_name example.com www.example.com;
...
}
示意圖如下:
創建回源HOST規則
登錄ESA控制臺。
在左側導航欄,單擊站點管理。
在站點管理頁面,單擊目標站點名稱,或對應站點操作列的詳情。
在左側導航欄,選擇
。單擊新建規則,填寫規則名稱。
在當請求匹配以下規則時...區域設置要匹配的用戶請求特征,單擊回源HOST區域的配置,配置回源HOST值。
單擊確定。