讓IIS支持高并發(fā)的Web服務(wù)器常用設(shè)置
適用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012
1、應(yīng)用程序池(Application Pool)的設(shè)置:
- General->Queue Length設(shè)置為65535(隊(duì)列長(zhǎng)度所支持的最大值)
- Process Model->Idle Time-out設(shè)置為0(不讓?xiě)?yīng)用程序池因?yàn)闆](méi)有請(qǐng)求而回收)
- Recycling->Regular Time Interval設(shè)置為0(禁用應(yīng)用程序池定期自動(dòng)回收)
2、.Net Framework相關(guān)設(shè)置
a) 在machine.config中將
<processModel autoConfig="true" />
改為
<processModel enable="true" requestQueueLimit="100000"/>
(保存后該設(shè)置立即生效)
b) 打開(kāi)C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers\Default.browser,找到<defaultBrowser id="Wml" parentID="Default" >,注釋<capabilities>部分,然后運(yùn)行在命令行中運(yùn)行aspnet_regbrowsers -i。
<defaultBrowser id="Wml" parentID="Default" > <identification> <header name="Accept" match="text/vnd\.wap\.wml|text/hdml" /> <header name="Accept" nonMatch="application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml" /> </identification> <!-- <capabilities> <capability name="preferredRenderingMime" value="text/vnd.wap.wml" /> <capability name="preferredRenderingType" value="wml11" /> </capabilities> --> </defaultBrowser>
以解決text/vnd.wap.wml問(wèn)題。
3、IIS的applicationHost.config設(shè)置
設(shè)置命令:
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
設(shè)置結(jié)果:
<serverRuntime appConcurrentRequestLimit="100000" />
(保存后該設(shè)置立即生效)
4、http.sys的設(shè)置
注冊(cè)表設(shè)置命令1(將最大連接數(shù)設(shè)置為10萬(wàn)):
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
注冊(cè)表設(shè)置命令2(解決Bad Request - Request Too Long問(wèn)題):
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
(需要在命令行運(yùn)行 net stop http & net start http & iisreset 使設(shè)置生效)
5、針對(duì)負(fù)載均衡場(chǎng)景的設(shè)置
在Url Rewrite Module中增加如下的規(guī)則:
<rewrite> <allowedServerVariables> <add name="REMOTE_ADDR" /> </allowedServerVariables> <globalRules> <rule name="HTTP_X_Forwarded_For-to-REMOTE_ADDR" enabled="true"> <match url=".*" /> <serverVariables> <set name="REMOTE_ADDR" value="{HTTP_X_Forwarded_For}" /> </serverVariables> <action type="None" /> <conditions> <add input="{HTTP_X_Forwarded_For}" pattern="^$" negate="true" /> </conditions> </rule> </globalRules> </rewrite>
相關(guān)博文:遷入阿里云后遇到的Request.UserHostAddress記錄IP地址問(wèn)題
注意事項(xiàng):添加該URL重寫(xiě)規(guī)則會(huì)造成IIS內(nèi)核模式緩存不工作,詳見(jiàn)微軟的坑:Url重寫(xiě)竟然會(huì)引起IIS內(nèi)核模式緩存不工作。
6、 設(shè)置Cache-Control為public
在web.config中添加如下配置:
<configuration> <system.webServer> <staticContent> <clientCache cacheControlCustom="public" /> </staticContent> </system.webServer> </configuration>
7、ASP.NET線程設(shè)置
在machine.config的<processModel>中添加如下設(shè)置:
<processModel enable="true" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>
相關(guān)博文:云計(jì)算之路-阿里云上:從ASP.NET線程角度對(duì)“黑色30秒”問(wèn)題的全新分析
8、修改TCP MaxUserPort限制
由默認(rèn)5000改為65534,修改方法:在注冊(cè)表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 中添加名為MaxUserPort,類(lèi)型為DWORD(32-bit),值為65534(10進(jìn)制)的項(xiàng)目并重啟計(jì)算機(jī)。
相關(guān)文章
IIS部署異常500.19錯(cuò)誤的問(wèn)題解決
IIS部署程序后訪問(wèn)服務(wù)報(bào)500.19錯(cuò)誤,本文就來(lái)介紹一下解決方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02如何設(shè)置虛擬內(nèi)存 winxp、win2003最正確的設(shè)置虛擬內(nèi)存方法
我不是說(shuō)如何支持4G以上內(nèi)存的廢話,地球人都知道裝上2003SP2企業(yè)版即可支持了。很多人插了8G內(nèi)存卻發(fā)現(xiàn)系統(tǒng)無(wú)論運(yùn)行多少程序物理內(nèi)存才使用3G左右,機(jī)器隨著運(yùn)行程序的時(shí)間越來(lái)越慢,硬盤(pán)燈也一直在閃2013-06-06Jira7.10.1在Windows環(huán)境下的安裝和配置教程圖解
JIRA中配置靈活、功能全面、部署簡(jiǎn)單、擴(kuò)展豐富。這篇文章主要介紹了Jira7.10.1在Windows環(huán)境下的安裝和配置教程圖解,需要的朋友可以參考下2018-06-06Windows Server 2019 取消默認(rèn)IE 瀏覽器安全增強(qiáng)配置的步驟
Windows Server 2019 操作系統(tǒng)打開(kāi)ie瀏覽器的時(shí)候各種對(duì)話框提示,下面就為大家分享一下解決方法2022-08-08win2003系統(tǒng)服務(wù)備份與保護(hù)
1.備份系統(tǒng)服務(wù)在對(duì)系統(tǒng)服務(wù)進(jìn)行配置管理以前,對(duì)其進(jìn)行備份是相當(dāng)重要的,一旦出現(xiàn)錯(cuò)誤可以馬上恢復(fù)到正常狀態(tài)。這里,我們介紹直接備份注冊(cè)表中與服務(wù)相關(guān)的內(nèi)容。2008-04-04IIS應(yīng)用程序池設(shè)置自動(dòng)回收
在IIS中,正確設(shè)置應(yīng)用程序池的自動(dòng)回收對(duì)于保持.NET程序穩(wěn)定運(yùn)行至關(guān)重要,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10IIS啟動(dòng)失敗"系統(tǒng)找不到指定的路徑"的解決
--------------------------- 錯(cuò)誤 --------------------------- 系統(tǒng)找不到指定的路徑。 --------------------------- 確定 ---------------------------2008-07-07Windows Server 2012顯示或隱藏桌面上的通用圖標(biāo)教程圖解
Windows Server 2012與Windows Server 2008 在顯示或隱藏桌面上的通用圖標(biāo)是不同的。這篇文章通過(guò)圖文并茂的形式給大家介紹Windows Server 2012顯示或隱藏桌面上的通用圖標(biāo),感興趣的朋友一起看看吧2018-12-12