本文將介紹如何配置後端服務Host網域名稱頭,以及在API Gateway中後端服務Host網域名稱頭的優先順序。
Host概述
當後端伺服器同一個IP上存在多個Web應用程式(網站)時,就需要配置Host網域名稱頭,Host網域名稱頭可以指定API Gateway要訪問的後端服務。常見應用情境如下:
API Gateway後端服務配置的是VPC類型,並且VPC資源內有多個網站時,需要通過Host頭指定請求應該發到哪個應用程式(網站)上。
1. 分組開啟透傳Host
可以在分組詳情中設定透傳HOST頭(網域名稱頭),開啟後API Gateway會將請求網域名稱透傳至後端,如果後端地址是網域名稱+連接埠,Host頭也將會被請求網域名稱覆蓋;若沒有開啟,後端收到的是使用者在API Gateway填寫的後端HOST。
2. API定義配置Host常量參數
建立API時在定義後端服務頁面的常量參數中添加一個名字為host,位置Head的參數,參數值設定為訪問後端服務的網域名稱。
3. VPC授權配置Host
登入API Gateway控制台,在開放API菜單中選擇VPC授權,選擇VPC所在地區,單擊建立授權,在建立VPC授權時指定Host。
4.後端服務配置Host
登入API Gateway控制台,在開放API菜單中選擇後端服務,類型選擇HTTP或是VPC(目前後端服務中僅這兩種類型支援配置Host)。建立好後端服務以後,在後端服務後的操作欄選擇配置及關聯的API,進入後端服務定義頁面,選擇其中一個環境如測試環境,單擊右上方的建立,即可定義後端服務地址及Host。
5. 後端路由外掛程式配置Host
後端路由外掛程式中可以通過httpTargetHostName 或vpcTargetHostName來指定API Gateway請求後端的網域名稱頭(Host),這種方式優先順序最高,更多配置詳情可以參考文檔後端路由的1.3章節。
Host頭優先順序
如果同時用這幾種方式配置了Host,優先順序為後端路由外掛程式 > 後端服務配置的Host > VPC授權 > 分組開啟透傳Host頭 > API定義常量參數。
分組透傳Host頭開啟後,如果HTTP類型後端地址是網域名稱+連接埠,Host頭也將會被請求網域名稱覆蓋。例如:
請求網域名稱為apigateway.test.com,後端服務地址為backend.test.com,開啟分組透傳Host後,API Gateway給後端發送的請求中,Host頭為apigateway.test.com。