當您的HTTPS服務已配置Global Acceleration,並且計劃引入HTTP/2協議版本來進一步提升服務效能時,您可以在Global Acceleration中配置HTTP/2協議版本。通過此配置,HTTPS服務可以充分利用HTTP/2的優勢,大幅提升服務效能,有效降低延遲及網路開銷,提升整體訪問體驗。
什麼是HTTP/2協議
如何協商HTTP/2
在HTTPS的協議協商中,用戶端與服務端必須建立TLS串連後才能發送應用資料。引入HTTP/2協議版本後,需要在協商機制中加入應用程式層協議協商ALPN(Application Layer Protocol Negotiation),用戶端和服務端會通過ALPN協商確定使用的協議版本。
Global Accelerator中指定HTTP/2協議後,在TLS握手過程中,Global Accelerator會在Client Hello的ALPN欄位中指定支援的協議版本為h2,同時會忽略服務端在Server Hello的ALPN欄位中響應的協議版本,強制使用HTTP/2協議版本串連後端服務。
情境樣本
本文以下圖情境為例。某企業的總部在美國矽谷,總部使用阿里雲伺服器ECS部署了HTTPS網站,用戶端主要分布在中國香港。同時,該企業已部署Global Accelerator服務,用於解決因跨國公網不穩定,而帶來的延遲、抖動、丟包等網路問題。
為了進一步改進網站效能,提高使用者訪問體驗,該企業計劃引入HTTP/2協議。
由於Global Accelerator配置後端服務合約為HTTPS時,預設以HTTP/1.1協議版本串連後端服務。該企業現需要修改Global Accelerator執行個體配置,指定HTTP/2協議版本串連後端服務,從而充分體驗該協議版本所帶來的效能改進。
使用限制
Global Acceleration配置HTTP/2協議版本串連後端服務,有以下使用限制:
如果您的GA執行個體不支援選擇串連後端服務的協議版本,可能是由於執行個體版本不支援。如需使用,請向商務經理申請升級執行個體。
不支援WebSocket協議。
不支援HTTP/2協議中的伺服器推送(Server Push)特性。
不支援加速以HTTP/2為基礎的gRPC請求。
前提條件
您已在認證中心購買或上傳伺服器憑證。具體操作,請參見購買正式認證和上傳和共用SSL認證。
您已將認證檔案上傳至後端伺服器。具體操作,請參見通過雲助手上傳檔案到ECS執行個體。
您的後端伺服器已部署了HTTPS 443服務,並啟用了HTTP/2協議版本。
請確保已在後端伺服器所屬安全性群組規則入方向添加TCP 443連接埠。具體操作,請參見添加安全性群組規則。
您已建立Global Accelerator執行個體,並已將後端伺服器添加為Global Acceleration的終端節點,設定後端服務合約為HTTPS。具體操作,請參見建立和管理標準型Global Acceleration執行個體。
認證綁定的網域名稱已完成DNS解析,即您的網域名稱與Global Accelerator執行個體分配的CNAME地址相互映射。具體操作,請參見配置CNAME。
配置HTTP/2協議串連後端服務
此處僅介紹本文情境所涉及的關鍵配置項,關於終端節點群組配置項更多資訊,請參見添加和管理智能路由類型監聽的終端節點群組。
在執行個體列表頁面,找到目標Global Acceleration執行個體,在操作列單擊配置監聽。
在監聽頁簽下,找到目標監聽,然後在操作列單擊編輯節點群組。
在配置監聽和協議設定精靈頁面,單擊下一步。
在配置終端節點設定精靈頁面,配置協議版本為HTTP/2,然後單擊下一步。
在組態稽核設定精靈頁面,確認資訊,然後單擊提交。
結果驗證
您可以在終端節點群組中配置協議版本為HTTP/2之前以及之後,分別執行以下操作步驟,以驗證HTTP/2協議是否生效。
在中國香港地區用戶端開啟瀏覽器,輸入
https://<加速網域名稱>,可以正常訪問後端服務。在美國矽谷地區的後端伺服器開啟命令列視窗,執行以下命令,查看最近一次的訪問記錄。
通過返回的訪問記錄詳情,可以查看訪問請求轉寄至後端伺服器所使用的協議版本。
tail -n 1 /var/log/nginx/access.log配置協議版本前,返回訪問記錄如下:
配置協議版本為HTTP/2後,返回訪問記錄如下:
相關文檔
產品教程
終端節點群組配置項詳細資料,請參見添加和管理智能路由類型監聽的終端節點群組。
如需從HTTP快速升級到HTTP/3協議對外提供服務,提升服務品質與系統能力,可配置用戶端接入GA的HTTP最大版本為HTTP/3,請參見GA使用HTTP/3協議提升應用系統訪問體驗。
API文檔
CreateEndpointGroup:建立終端節點群組。通過
EndpointProtocolVersion參數指定串連後端服務的協議版本。UpdateEndpointGroup:修改終端節點群組的業務配置。通過
EndpointProtocolVersion參數指定串連後端服務的協議版本。DeleteEndpointGroup: 刪除終端節點群組。