Microsoft IIS Web伺服器配置優化
阿新 • • 發佈:2022-03-30
相信大家所在團隊應該或多或少會存在一些使用.NET 4.x的老系統,本文總結了筆者所在團隊對.NET 4.x應用的線上IIS伺服器進行的一些配置優化,供參考。
環境版本說明
適用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0適用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012
集採線上環境對應版本:.NET Framework 4.5(及以上版本) + IIS8.0(及以上版本) + Windows Server 2012 R2(及以上版本)
.NET Framework配置優化
`<processModel autoConfig="true" />`為
`<processModel enable="true" requestQueueLimit="100000" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>`修改後點選儲存立即生效,修改此配置可以移除自動配置的請求佇列限制,這裡放寬到10萬請求量並放寬ASP.NET執行緒數限制。
Note:關於.NET中的workerThread和ioThread的概念,可以閱讀https://blog.csdn.net/wwwpcstarcomcn/article/details/11892711
IIS的applicationHost配置優化
開啟cmd以管理員身份執行以下命令:`C:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000`驗證:找到C:\Windows\System32\inetsrv\config\applicationHost.config中的以下內容
`<serverRuntime appConcurrentRequestLimit="100000" />`
作業系統http.sys配置優化
關於http.sys:它是Windows作業系統的一個核心元件,它執行在作業系統的核心模式下,是一個網路驅動程式,始終處於執行狀態,對於使用者的HTTP請求能夠及時作出反應。
(1)登錄檔設定命令1(將最大連線數設定為10萬):
`reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000`(2)登錄檔設定命令2(解決Bad Request - Request Too Long問題):
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxFieldLength /t REG_DWORD /d 32768 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxRequestBytes /t REG_DWORD /d 32768reference:https://www.cnblogs.com/dudu/archive/2012/06/06/bad_request_request_too_long.html
最後執行以下命令讓配置生效(在powershell下通過 | 符號連線多個命令):
net stop http | net start http | iisreset
作業系統TCP埠配置優化
Windows Server預設的TCP MaxUserPort限制為5000,超出TCP連線埠數限制也會引起伺服器問題(參考:部落格園主站的TCP MaxUserPort引起的伺服器問題 )。 修改: 在登錄檔 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 中新增名為MaxUserPort,型別為DWORD(32-bit),值為65534(10進位制)的專案。
Note:如果你的多個應用站點都是使用同一個埠(比如:80埠),那麼放寬此TCP MaxUserPort限制很有必要!
IIS整體配置優化
(1)關閉目錄瀏覽 (2)關閉IIS日誌 (3)啟用IIS應用預載入 目的:解決第一次(或者被應用程式池回收後)訪問慢的問題 方法: step1.在伺服器管理中安裝應用程式初始化功能
step2.在IIS為指定網站設定預載入
選擇網站-網站設定-高階設定:
setp3.在IIS整體設定“配置編輯器”:
設定後點擊應用按鈕生效。
IIS應用配置優化
建議設定應用池預設配置以便多個應用站點複用: (1)常規 佇列長度:改為65535 啟動模式:改為AlwaysRunning
Note:佇列長度改大這個操作是把雙刃劍,取決你的伺服器配置 及 應用程式的效能,建議謹慎設定。(2)回收 改為特定時間(比如凌晨4點)回收:
(3)程序模型
關閉時間限制:改為120s
空閒超時操作:改為Suspend
啟動時間限制:改為120s
閒置超時:改為0分鐘
參考資料
(1)dudu,《支援高併發的IIS Web伺服器常用配置 》
(2)dudu,《讓Windows Server + IIS支援10萬併發請求 》
(3)滴答的雨,《站點部署:IIS配置優化指南》
來源:EdisonTalk ,作者愛迪生
武穆逸仙 https://www.iwmyx.cn/microsoftiiswebfwqpa.html