开启静态文件※的gzip压缩非常有利□□□□用提高网站的□□□□访问速度,并且有效减少□□□蜘蛛爬行静态□□页面的time-taken,同时也不会像❖开启动态文件□□□压缩一样可能□□会对百度蜘蛛□□造成200 0 64的抓取问题,所以一方面,网站速度快有□□□利于提高用户□□□□体验,另一方面,google管理员博客在□□今年已经明确※表示网站速度□□是排名的因素·之一,而对于拿国外□□主机做百度中□□□文站优化,time-taken不理想会导致□□百度蜘蛛内页□□□□抓的少,国平之前在自□□己博客文章网□□□□页加载速度是□□如何影响SEO效果的中也提□□□□到过,在固定的一段□□时间内蜘蛛抓□□取网站的总时□□□□间是固定的,那么抓取速度□□□□上去了,抓取页面数就◎会更多,反之则少。
gzip静态页面的压□□缩版本在服务◥器上保存方式,发现导致两个□□□□主机返回gzip结果不同的终□□□原因是iis版本而不是缓△存文件夹设置❖过小。
事实上,iis7比iis6在静态压缩上□□□□有了较大的更□□□新,在IIS6中,静态压缩是在□□一个不同的线□□□程上进行的,所以在收到一□□个HTTP请求后,先进个发送给丨浏览器的HTML版本是没有压◆缩过的,而同时IIS6会开始使用一□□□□个不同的线程□□□对这个文件进◤行压缩并且将★这个压缩后的□□□版本长期保存□□□在压缩文件的▲缓存文件夹内。而在以前,也就是IIS6服务器上,在压缩完成之□□后凡是对该被□□□□压缩版本的静□□□□态文件的HTTP请求,IIS6都会直接从缓□□□存文件夹中直□□□□接调用压缩后□□的版本并返回•给浏览器。
但是在IIS7中,压缩是在主线□□□□程上进行的,而且为了节省□□□压缩的成本,IIS7不对所有的HTTP请求而只对哪□□□些经常会被用□□户访问的静态□□□文件进行压缩·版本的长期保□□存,这也就是为什□□么我在之前先□□□□进次访问没有□□□压缩,短期内再次访•问返回的是压□□缩版本,但是再过几分◤钟访问返回的□□又是未压缩版□□□本的原因。这里我们可以·理解为IIS7并没有将压缩□□□□版本实际保存□□□到缓存文件夹□□中,而是只在服务□□器内存中做了□□□保存,或者是临时将□□□压缩版本保存※到缓存文件夹□□□□中,一会之后进行○删除。
而IIS7定义什么文件◈是经常访问的□□符合压缩标准□□□的方法是system.webServer/serverRuntime中的以下两个□□□□属性,frequentHitThreshold和frequentHitTimePeriod 。如果IIS在frequentHitTimePeriod时间段内接收□□□□到了对某个静□□□态文件的超过frequentHitThreshold闸值次数的访□□问,那么IIS7就会像IIS6一样压缩该静□□□□态文件并且将◈这个压缩后的□□版本长期保存□□在压缩文件的□□□缓存文件夹内。如果用户访问◤网站某文件时,已经在缓存文丨件夹中存在该□□□□文件的缓存版✦本,那么IIS7是不会再判断frequentHitThreshhold这个逻辑而是☆直接返回压缩□□版本给浏览器。
这种设置的确□□□有点麻烦,但是微软官方□□给出的答复是□□这样有利用提□□□□高服务器性能。那么如果想要□□让IIS7能够向IIS6一样做压缩的◎话,有两种解决方◢法,当然都是修改frequentHitThreshold和frequentHitTimePeriod这两个值:
先进种是在web.config中添加以下内□□□□容,将frequentHitThreshold调至1,将frequentHitTimePeriod调制10分钟
<system.webServer>
<serverRuntime enabled="true"
frequentHitThreshold="1"
frequentHitTimePeriod="00:10:00"/>
</system.webServer>
第二种方法是●打开%windir%system32inetsrvappcmd.exe,然后再命令行□□□□界面中输入以◇下命令字符串,然后回车
set config -section:system.webServer/serverRuntime -frequentHitThreshold:1
微软官方建议□□□比较不激进的□□办法是不要调□□□低frequentHitThreshold而是提高frequentHitTimePeriod,这样对服务器◆性能更适中。这里要提到的♦是,对于拥有VPS的朋友们,建议可以手动◇设置,而虚拟主机用□□□□户能不能设置□□□就得看服务商□□□了。
扫一扫
关注k8凯发一触即发
全国咨询热线
135-9299-6491