> For the complete documentation index, see [llms.txt](https://geforce2003.gitbook.io/hims/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://geforce2003.gitbook.io/hims/azure-application-gateway/agw-app-service/http-she-ding.md).

# HTTP設定

先選到HTTP settings, 再點選新增(Add)

![HTTP設定](/files/xg3d8J1DSzKp7tmsx7Rx)

HTTP設定一樣分成上下兩步驟，先處理上半部，如下圖

其實第一步驟應該是要指定HTTP設定的設定檔名稱，一樣，取一個簡單容易識別的，下面這種取法很不OK...XDrz

後端集區的通訊協定，因為我們的web app都是走HTTPS，所以這部份就單純一點，選HTTPS

信任的根憑證，這部分看說明是說如果都用app service的話，選擇使用眾所皆知的CA憑證即可，不然還要自己上傳cer檔案，有點麻煩(攤手)

![HTTP上半部設定](/files/2Saf5d7hp8osTFsa64S5)

接著這邊是下半部的設定，第一個Cookie-based affinity這個其實除非後端RD有特別去處理，不然這個開起來是開心酸的

不過第二個Drain timeout這個就很實用了，當後端在deploy的時候，後端的執行個體會先暫時被卸除，那這個被卸除的個體不會收到任何來自前端的request，這樣可以減少在切換中發生前端炸錯誤的異常

這邊Drain timeout預設60秒，可以根據實際狀況再調整時間的長短

![HTTP設定下半部](/files/w9bUFdauKzr3HbxwHUZZ)

Request time-out，這個是指當來自前端的請求如果超過N秒的時候就把這個request drop，這邊我預設20秒，(其實20秒很久了...)

![HTTP最後的設定](/files/9sWuEZNA7lC81rrEcgI4)

預設APGW並不會去改寫http host的header，不過app service之類的服務會需要host header來解析然後送到正確的endpoint，因為我們後端的服務全都是app service，所以選擇Override with new host name，然後Pick host name from backed target選取起來，如果選第二個的話來自client的request會有問題= =a
