繼上篇:Taurus .Net Core 微服務開源框架:Admin 外掛【3】 - 指標統計管理
本篇繼續介紹下一個內容:
介面圖如下:
雙擊節點即可進入修改模式,如:
修改說明:
不勾選持久化,該設定當前生效,下次重次失效,修改後設定值旁邊帶有【temp】說明文字;
勾選持久化,該設定會儲存在硬碟中,後續重啟也仍舊生效,修改後設定值旁邊帶有【durable】說明文字。
節點說明:預設顯示的是 Mvc 的設定介面。
NetCore 版本 和 .Net Framework 版本的區別,就是 多了一個Kestrel 設定,其餘一致。
本節先講 Kestrel 相關的設定項:
介面如下:
設定說明:經過對 Kestrel 長時間的研究和原始碼分析:
Description 中帶有 【Restart】,即雙擊【Config Value】修改設定後,需要重啟應用才能生效,其餘都可即時生效。
設定詳細說明:
Urls:採用了NetCore原生的設定方式,可以用來設定預設http請求的埠,如果僅啟用https而不啟用http,可以不設定此引數。
AllowSynchronousIO:是否允許同步IO讀取,框架在接收Post資料有讀Body Stream,在Window環境此引數不影響,在Linux環境,需要設定為true。
AddServerHeader:此引數決定是否輸出請求頭:Server:kestrel。
SslPort:開啟https的埠,預設443,允許修改。
SslPath:只要把證書放在此目錄,即自動生效,支援以https方式存取,此目錄允許修改。
https 啟用範例:
從證書平臺申請證書後,以IIS部署方式(pfx檔案)下載,得到以域名為名稱的 zip 檔案:
解壓後,只要把 keystorePass.txt 改名成對應域名 gateway.cyqdata.com.txt 。
然後把兩個檔案放到 SslPath 對應設定的目錄即可。
框架簡化了複雜的設定,讓Kestrel啟用Https即這麼簡單。
介面如下:
設定說明:
AllowedHosts:允許的主機頭,預設*,接收所有主機,如果要限定域名存取,修改為域名即可(多個用逗號分隔),如:gateway.cyqdata.com
AllowEmptyHosts:允許請求頭不帶Host,這個是相容http1.0協義的東西,如果不想相容,可以不用管。
IncludeFailureMessage:如果觸發限制,是否輸出提示文字,即【400狀態碼:無效主機頭】。
介面如圖:
設定說明:
預設設定是long.MaxValue,即無限制連結數,可以修改,但需要重啟應用才能生效。 由於 Kestrel 的內部實現造成此設定的不友好性,框架在 Limit - Rate 設定中,增加了以下設定項: Limit.Rate.MaxConcurrentConnections,同樣實現並行總數限制,並可即修改即生效。
介面如下:
設定說明:
MaxRequestBodySize:僅限制HTTP請求中請求體的大小(位元組,預設long.MaxValue)。 MaxRequestBufferSize:限制整個HTTP請求的大小(位元組,預設long.MaxValue),包括請求行、請求頭和請求體。 MaxRequestLineSize:請求行長度(位元組),如:GET /api/users HTTP/1.1 MaxRequestHeaderCount:最大請求頭數量。 MaxRequestHeadersTotalSize:最大請求頭位元組數。
前面2個引數需要重啟應用才生效;
後面3個引數,修改比較危險,容易造成應用程式無法存取,因此框架內部做了最小值限制。
介面如圖:
設定說明:
MaxResponseBufferSize:伺服器端允許輸出的最大位元組數。
介面如圖:
設定說明:
KeepAliveTimeout:和使用者端最長保持連結時間,以分鐘為單位。
RequestHeadersTimeout:請求頭接收的最長時間,以秒為單位。
對個別 Kestel 引數,沒有呈現出來,比如 http2 或 http3 的設定,後續會考量儘量補全。
版權宣告:本文原創發表於 部落格園,作者為 路過秋天 本文歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則視為侵權。 |
個人微信公眾號 |
創業QQ群:617713515 |
Donation(掃碼支援作者):支付寶: |
Donation(掃碼支援作者):微信: |
騰訊雲產品福利專區 |