1. 程式人生 > 其它 >Microsoft IIS Web伺服器配置優化

Microsoft IIS Web伺服器配置優化

相信大家所在團隊應該或多或少會存在一些使用.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配置優化

找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 修改
`<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 32768
reference: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