全棧攻城獅-每日更新原創(chuàng)IT編程技術(shù)及日常實(shí)用視頻。
主要內(nèi)容:眾所周知,程序員的開發(fā)需要環(huán)境的支持,今天就介紹一下IIS的配置。當(dāng)然接下來兩篇中也介紹一下數(shù)據(jù)庫以及Visual Studio 2017的安裝。
在.Net環(huán)境的配置安裝的時(shí)候,其實(shí)是有一個(gè)先后順序的。當(dāng)然這里的.Net環(huán)境的配置包括IIS、Visual Studio、數(shù)據(jù)庫。主要是這三個(gè)方向。其他的開發(fā)工具軟件,這里暫時(shí)不提。
.Net程序員環(huán)境配置
我這里以Win10系統(tǒng)為例。安裝順序?yàn)椋篒IS、SQL、Visual Studio。
本篇文章主要介紹IIS的安裝,IIS是什么呢?IIS是微軟發(fā)布的一款Web服務(wù)器,可以用來進(jìn)行Web或者服務(wù)的發(fā)布。對于我們Asp.Net的程序員來說,有時(shí)候就需要安裝IIS的環(huán)境了。在Windows服務(wù)器中如果想要對外提供Web服務(wù)你就需要安裝這個(gè)軟件。
IIS
就不多說廢話了,下面把安裝IIS的步驟寫出來。
右鍵點(diǎn)擊左下角微軟圖標(biāo),選擇控制面板
控制面板
控制面板-程序
啟動(dòng)Windows功能
可承載的Web核心
把內(nèi)部所有項(xiàng)目都打上勾:
選中Web
直到最外層的Internet Information Services前面為打勾項(xiàng):
最終效果
此時(shí),直接點(diǎn)擊確定。然后Windows功能會自動(dòng)下載安裝IIS:
安裝過程
稍等片刻,即可安裝完成。
IIS安裝完成
根據(jù)第一步,打開控制面板,選擇小圖標(biāo)顯示,打開管理工具。
管理工具
選擇“IIS管理器”:
IIS管理器
雙擊即可打開:
此時(shí)瀏覽器內(nèi)輸入:127.0.0.1(本機(jī)IP)即可打開IIS的默認(rèn)界面:
幫客戶配置服務(wù)器,裝的WIN2008系統(tǒng),在WIN2008的IIS7上使用FASTCGI調(diào)用PHP-CGI.EXE,默認(rèn)只有4個(gè)進(jìn)程,這樣對于大流量的網(wǎng)站為說進(jìn)程數(shù)不足帶來的進(jìn)程排隊(duì)現(xiàn)象十分嚴(yán)重,解決方案如下
32位系統(tǒng) http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_x86.msi
64位系統(tǒng) http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_amd64.msi
下載如下工具,安裝后,如下圖
添加
PHP_FCGI_MAX_REQUESTS=10000
添加后,不用重啟IIS,就能在進(jìn)程管理器看到效果。
似乎并沒有達(dá)到設(shè)定的值,不過瀏覽網(wǎng)站明顯感覺到性能的提示。
內(nèi)存占用~~ 其實(shí)微軟的系統(tǒng)有一個(gè)不好處在于,服務(wù)器的內(nèi)存占用,要盡量讓服務(wù)去使用,而并不像客戶端使用一樣,留足夠多的內(nèi)存給用戶的應(yīng)用程序。
我在這里要提醒大家注意的是以下兩個(gè)參數(shù)值得設(shè)置:
InstanceMaxRequests:fastcgi進(jìn)程(php-fcgi.exe)能處理的最大請求數(shù),超過了就要回收,默認(rèn)是200
PHP_FCGI_MAX_REQUESTS:php自身控制的最大請求數(shù),默認(rèn)是500
既然要用fastcgi去運(yùn)行cgi,那肯定是不想php自身去限制最大請求數(shù)!!
所以,一定要保證InstanceMaxRequests小于 或 等于 PHP_FCGI_MAX_REQUESTS,這樣php自身永遠(yuǎn)沒有機(jī)會去回收進(jìn)程。
可以看micorsoft說的:
Make sure that FastCGI always recycles Php-cgi.exe processes before native PHP recycling starts. The configuration property instanceMaxRequests controls the FastCGI process-recycling behavior. This property specifies how many requests FastCGI will process before recycling. PHP also has a similar process-recycling functionality that is controlled by the environment variable PHP_FCGI_MAX_REQUESTS. By setting instanceMaxRequests to a value that is smaller than or equal to PHP_FCGI_MAX_REQUESTS, you can make sure that the native PHP process-recycling logic will never start.
建議
512M 內(nèi)存的改maxInstances=50
1G 內(nèi)存的改maxInstances=80
2G 內(nèi)存的改maxInstances=140
再修改
InstanceMaxRequests=
把這個(gè)值改小
建議
512M 內(nèi)存的改InstanceMaxRequests=200
1G 內(nèi)存的改InstanceMaxRequests=300
2G 內(nèi)存的改InstanceMaxRequests=500
改完, 重啟IIS。
instanceMaxRequests PHP_FCGI_MAX_REQUESTS 這兩個(gè)參數(shù)決定了一個(gè)php-cgi進(jìn)程被創(chuàng)建出來之后,最多接受的PHP請求數(shù),在lighttpd中默認(rèn)配置是10000。也就是說這個(gè)php-cgi進(jìn)程每接受10000次PHP請求后會終止,釋放所有內(nèi)存,并重新被管理進(jìn)程啟動(dòng)。如果把它降低,比如改成100,那么php-cgi重啟的周期會大大縮短,偶然的高內(nèi)存操作造成的問題影響時(shí)間也會縮短。
maxInstances 這個(gè)參數(shù)指定可以啟動(dòng)的最大實(shí)例數(shù)目,即php-cgi.exe進(jìn)程的數(shù)目。如果把它降低,比如改成100,那么在任務(wù)管理器的進(jìn)程中最多只有php-cgi.exe進(jìn)程,php-cgi.exe所占用的總內(nèi)存將大大減少。
我現(xiàn)在用的服務(wù)器為windows 2003操作系統(tǒng),4G內(nèi)存,一個(gè)php-cgi.exe程序占用7-25M內(nèi)存,我把maxInstances值調(diào)為300,減少了php-cgi.exe進(jìn)程的總數(shù)量,占用內(nèi)存也減小了,反應(yīng)速度比以前快了不少,至少調(diào)整到多少,可根據(jù)您的站點(diǎn)訪問量來決定。