如果您的用戶端使用HTTPS,且用戶端對於HTTP/2的支援存在問題,但是不便修改,可以在ASM網關側禁用HTTP/2協議。本文介紹如何在入口網關側HTTPS中禁用HTTP/2。
前提條件
步驟一:確認預設配置
執行以下命令,訪問ASM網關,驗證當前的ALPN協議最終使用HTTP/2。
curl -k -H Host:b.aliyun.com --resolve b.aliyun.com:443:${ASM網關IP地址} https://b.aliyun.com/status/418 -v預期輸出:

預期輸出表明用戶端提供的ALPN列表有HTTP/2和HTTP/1.1。預設情況下,網關優先使用HTTP/2。
步驟二:在使用HTTPS協議時,禁用HTTP/2
登入ASM控制台,在左側導覽列,選擇。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇。
在入口網關頁面右側,單擊目標網關對應的查看YAML,在編輯對話方塊的
spec欄位下,配置podAnnotations,然後單擊確定。podAnnotations: proxy.istio.io/config: | httpsHttp2Disabled: true說明該配置會導致網關重啟。
步驟三:驗證HTTP/2是否在HTTPS中被禁用
執行以下命令,訪問ASM網關。
curl -k -H Host:b.aliyun.com --resolve b.aliyun.com:443:${ASM網關IP地址} https://b.aliyun.com/status/418 -v預期輸出:

預期輸出表明用戶端提供的ALPN列表只有HTTP/1.1,HTTP/2禁用成功。