IIS6和IIS7對(duì)靜態(tài)文件gzip壓縮方式
來(lái)源:易賢網(wǎng) 閱讀:955 次 日期:2014-11-17 15:42:13
溫馨提示:易賢網(wǎng)小編為您整理了“IIS6和IIS7對(duì)靜態(tài)文件gzip壓縮方式”,方便廣大網(wǎng)友查閱!

先說(shuō)明下為什么要寫(xiě)這篇文章,以及糾結(jié)于這個(gè)“小問(wèn)題”。首先開(kāi)啟靜態(tài)文件的gzip壓縮非常有利用提高網(wǎng)站的訪問(wèn)速度,并且有效減少蜘蛛爬行靜態(tài)頁(yè)面的time-taken,同時(shí)也不會(huì)像開(kāi)啟動(dòng)態(tài)文件壓縮一樣可能會(huì)對(duì)百度蜘蛛造成200 0 64的抓取問(wèn)題,所以一方面,網(wǎng)站速度快有利于提高用戶體驗(yàn),另一方面,google管理員博客在今年已經(jīng)明確表示網(wǎng)站速度是排名的因素之一,而對(duì)于拿國(guó)外主機(jī)做百度中文站優(yōu)化,time-taken不理想會(huì)導(dǎo)致百度蜘蛛內(nèi)頁(yè)抓的少,國(guó)平之前在自己博客文章網(wǎng)頁(yè)加載速度是如何影響SEO效果的中也提到過(guò),在固定的一段時(shí)間內(nèi)蜘蛛抓取網(wǎng)站的總時(shí)間是固定的,那么抓取速度上去了,抓取頁(yè)面數(shù)就會(huì)更多,反之則少。

好吧,開(kāi)始正文,在上篇文章《蜘蛛抓取靜態(tài)頁(yè)面與觸發(fā)gzip壓縮的實(shí)驗(yàn)結(jié)果》中的問(wèn)題二,我提出了gzip靜態(tài)頁(yè)面的壓縮版本在服務(wù)器上保存方式的猜測(cè),在困惑了許久之后,發(fā)現(xiàn)導(dǎo)致兩個(gè)主機(jī)返回gzip結(jié)果不同的最終原因是iis版本而不是我猜測(cè)的緩存文件夾設(shè)置過(guò)小

事實(shí)上,iis7比iis6在靜態(tài)壓縮上有了較大的更新,在IIS6中,靜態(tài)壓縮是在一個(gè)不同的線程上進(jìn)行的,所以在收到一個(gè)HTTP請(qǐng)求后,第一個(gè)發(fā)送給瀏覽器的HTML版本是沒(méi)有壓縮過(guò)的,而同時(shí)IIS6會(huì)開(kāi)始使用一個(gè)不同的線程對(duì)這個(gè)文件進(jìn)行壓縮并且將這個(gè)壓縮后的版本長(zhǎng)期保存在壓縮文件的緩存文件夾內(nèi)。而在以前,也就是IIS6服務(wù)器上,在壓縮完成之后凡是對(duì)該被壓縮版本的靜態(tài)文件的HTTP請(qǐng)求,IIS6都會(huì)直接從緩存文件夾中直接調(diào)用壓縮后的版本并返回給瀏覽器。

但是在IIS7中,壓縮是在主線程上進(jìn)行的,而且為了節(jié)省壓縮的成本,IIS7不對(duì)所有的HTTP請(qǐng)求而只對(duì)哪些經(jīng)常會(huì)被用戶訪問(wèn)的靜態(tài)文件進(jìn)行壓縮版本的長(zhǎng)期保存,這也就是為什么我在之前第一次訪問(wèn)沒(méi)有壓縮,短期內(nèi)再次訪問(wèn)返回的是壓縮版本,但是再過(guò)幾分鐘訪問(wèn)返回的又是未壓縮版本的原因。這里我們可以理解為IIS7并沒(méi)有將壓縮版本實(shí)際保存到緩存文件夾中,而是只在服務(wù)器內(nèi)存中做了保存,或者是臨時(shí)將壓縮版本保存到緩存文件夾中,一會(huì)之后進(jìn)行刪除。

而IIS7定義什么文件是經(jīng)常訪問(wèn)的符合壓縮標(biāo)準(zhǔn)的方法是system.webServer/serverRuntime中的以下兩個(gè)屬性,frequentHitThreshold和frequentHitTimePeriod 。如果IIS在frequentHitTimePeriod時(shí)間段內(nèi)接收到了對(duì)某個(gè)靜態(tài)文件的超過(guò)frequentHitThreshold閘值次數(shù)的訪問(wèn),那么IIS7就會(huì)像IIS6一樣壓縮該靜態(tài)文件并且將這個(gè)壓縮后的版本長(zhǎng)期保存在壓縮文件的緩存文件夾內(nèi)。如果用戶訪問(wèn)網(wǎng)站某文件時(shí),已經(jīng)在緩存文件夾中存在該文件的緩存版本,那么IIS7是不會(huì)再判斷frequentHitThreshhold這個(gè)邏輯而是直接返回壓縮版本給瀏覽器。

這種設(shè)置的確很蛋疼,但是微軟官方給出的答復(fù)是這樣有利用提高服務(wù)器性能。。。那么如果想要讓IIS7能夠向IIS6一樣做壓縮的話,有兩種解決方法,當(dāng)然都是修改frequentHitThreshold和frequentHitTimePeriod這兩個(gè)值:

第一種是在web.config中添加以下內(nèi)容,將frequentHitThreshold調(diào)至1,將frequentHitTimePeriod調(diào)制10分鐘

<system.webServer>

<serverRuntime enabled="true"

frequentHitThreshold="1"

frequentHitTimePeriod="00:10:00"/>

</system.webServer>

第二種方法是打開(kāi)%windir%\system32\inetsrv\appcmd.exe,然后再命令行界面中輸入以下命令字符串,然后回車(chē)

set config -section:system.webServer/serverRuntime -frequentHitThreshold:1

微軟官方建議比較不激進(jìn)的辦法是不要調(diào)低frequentHitThreshold而是提高frequentHitTimePeriod,這樣對(duì)服務(wù)器性能更適中。這里要提到的是,對(duì)于擁有VPS的朋友們,建議可以手動(dòng)設(shè)置,而虛擬主機(jī)用戶能不能設(shè)置就得看服務(wù)商了,我就很悲劇的改不了。大家試試看吧

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:IIS6和IIS7對(duì)靜態(tài)文件gzip壓縮方式
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)