禁止IIS緩存靜態(tài)文件的方法(png,js,html等)
禁止IIS緩存靜態(tài)文件(png,js,html等)背景:
IIS為了提高性能,默認(rèn)情況下會(huì)對(duì)靜態(tài)文件js,html,gif,png等做內(nèi)部緩存,這個(gè)緩存是在服務(wù)器iis進(jìn)程的內(nèi)存中的。IIS這么做在很大程度上可以提高靜態(tài)文件的訪問性能,在正常情況下只要靜態(tài)文件更新了IIS也會(huì)更新緩存。但是如果更新的靜態(tài)文件很多就有可能出現(xiàn)緩存不更新的情況。
彎路:
我遇到這樣一個(gè)場(chǎng)景,服務(wù)器循環(huán)更新上萬張股票行情圖片,IIS也會(huì)對(duì)圖片進(jìn)行緩存,由于更新的頻率很高,文件很多,就出現(xiàn)了IIS緩存文件超過幾十分鐘都無法更新的情況。
這時(shí)候直覺是瀏覽器對(duì)文件進(jìn)行了緩存,于是就在IIS的目錄上設(shè)置Http頭:Cache-Control:no-cache,但是無濟(jì)于事,瀏覽器請(qǐng)求服務(wù)器端得到的狀態(tài)號(hào)是200,這可以說明瀏覽器確實(shí)是從服務(wù)器端得到了新的內(nèi)容,而非讀取瀏覽器本地緩存。
如何禁止IIS緩存靜態(tài)文件(png,js,html等):
通過設(shè)置Http頭不讓瀏覽器緩存的方法在這個(gè)場(chǎng)景下是行不通的,因?yàn)榫彺娌皇浅霈F(xiàn)的客戶端,而是出現(xiàn)在IIS服務(wù)器上;所以解決問題還需要從IIS本身入手,通過配置Metabase.xml文件禁止IIS緩存相應(yīng)目錄下的靜態(tài)文件。
1. 首先需要設(shè)置IIS允許運(yùn)行時(shí)編輯Metabase.xml文件
打開IIS,然后打開IIS屬性頁,勾選上“允許直接編輯配置數(shù)據(jù)庫”選項(xiàng)
2. 在運(yùn)行中輸入notepad c:\WINDOWS\system32\inetsrv\MetaBase.xml 打開IIS配置文件
3. 在文件中搜索要配置禁止緩存的虛擬目錄名字,找到類似如下配置節(jié)
<IIsWebVirtualDir Location ="/LM/W3SVC/1832041641/root/inc"
AccessFlags="AccessRead | AccessScript"
AppFriendlyName="inc"
AppIsolated="2"
AppRoot="/LM/W3SVC/1832041641/Root/inc"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
Path="D:\publish\inc"
>
</IIsWebVirtualDir>
在IIsWebVirtualDir配置節(jié)中添加 MD_VR_NO_CACHE=”1“ 屬性
4. 保存配置文件,重啟IIS即可。
如果想配置服務(wù)器上的所有站點(diǎn)都禁用IIS緩存可以通過修改注冊(cè)表實(shí)現(xiàn):
編輯注冊(cè)表中的 DisableStaticFileCache值,0為啟用,1為禁用 ,該鍵值的位置位于:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters
如果該鍵不存在可以新建dword。
注意事項(xiàng):
通常情況下我們并不需要禁用IIS的靜態(tài)文件緩存,iis會(huì)自動(dòng)根據(jù)靜態(tài)文件的修改時(shí)間自動(dòng)更新緩存;只有在你遇到非常情況下才有必要禁用IIS緩存。IIS緩存和Http緩存相關(guān)頭沒有任何關(guān)系,在IIS上加緩存頭沒有辦法清除掉IIS對(duì)靜態(tài)文件的緩存。
轉(zhuǎn)載請(qǐng)保留鏈接 玉開的技術(shù)博客
相關(guān)文章
護(hù)衛(wèi)神 主機(jī)管理系統(tǒng)使用說明(MSSQL管理)
護(hù)衛(wèi)神·主機(jī)管理系統(tǒng)該版本支持在Windows Server 2003/2008/2012,含32位和64位,直接開設(shè)配置WEB站、FTP站,以及SQL Server和MySQL,是您開設(shè)和管理虛擬主機(jī)的絕好幫手。但是對(duì)于新用戶可能在使用上有一些困難,因此請(qǐng)仔細(xì)閱讀如下說明文檔2015-01-01
IIS URL Rewrite Module防盜鏈規(guī)則配置方法
這篇文章主要介紹了IIS URL Rewrite Module防盜鏈規(guī)則配置方法,大家參考使用吧2013-11-11
讓IIS服務(wù)器支持flv,f4v,mp4在線播放(2003,2008)
這篇文章主要介紹了讓IIS服務(wù)器支持flv,f4v,mp4在線播放(2003,2008),需要的朋友可以參考下2016-12-12
Win2022實(shí)現(xiàn)搭建AD子域的圖文教程
AD域服務(wù)器是一種基于Windows Server的網(wǎng)絡(luò)身份驗(yàn)證和授權(quán)服務(wù),本文主要介紹了Win2022實(shí)現(xiàn)搭建AD子域的圖文教程,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
Windows Server 2016 IIS10 設(shè)置HTTPS HTTP/2 并跑分到 A+
這篇文章主要介紹了Windows Server 2016 IIS10 設(shè)置HTTPS HTTP/2 并跑分到 A+,需要的朋友可以參考下2017-08-08
Windows下Apache應(yīng)用環(huán)境塔建安全設(shè)置(目錄權(quán)限設(shè)置)
目的:為Apache,php配置受限制的用戶權(quán)限。保護(hù)系統(tǒng)安全。需要的朋友可以參考下。2011-04-04
Windows 2008 R2 下IIS7.5+PHP5.2環(huán)境配置(FastCgi設(shè)置)
這篇文章主要介紹了Windows 2008 R2 下IIS7.5+PHP5.2環(huán)境配置(FastCgi設(shè)置),需要的朋友可以參考下2016-06-06
IIS通過ARR實(shí)現(xiàn)負(fù)載均衡的方法步驟
本文主要介紹了IIS通過ARR實(shí)現(xiàn)負(fù)載均衡的方法步驟,通過合理配置ARR,可以有效分發(fā)請(qǐng)求,提高IIS的吞吐量和響應(yīng)速度,為網(wǎng)站或應(yīng)用程序提供更好的性能保障2024-01-01
Windows中利用計(jì)劃任務(wù)實(shí)現(xiàn)自動(dòng)備份文件
我們來利用windows系統(tǒng)的計(jì)劃任務(wù)來實(shí)現(xiàn)數(shù)據(jù)庫的備份,是文件夾copy到固定的文件夾,是把文件夾copy以當(dāng)天日期的自動(dòng)生成的文件夾,大家可以發(fā)揮下結(jié)合下bat效果更佳2013-01-01

