IIS7.0中GZIP啟用動態內容壓縮等問題


這幾天在折騰網站搬家的事情,雖然搬家的過程很簡單,但是遇到的小問題特別多,今天就給大家分享下windows 2008 IIS7.0下開啟GZIP的問題。

IIS7.0下開啟gzip教程,網上一搜一大把,但大家都能發現一個問題,教程都是復制粘貼的結果,如果我的教程和網上一樣我就不會寫了,我主要強調幾點網上很少介紹到的。

在II7.0中的gzip壓縮與II6的功能差距還是比較大的,II6中定義壓縮的文件類型是以文件后綴來區別的,而II7中則是根據mimeType來判別壓縮的文件。在設置上的差別也是比較大的,因為我是個比較背的人,所以什么問題都被我碰到了。

如果你是IIS6請戳這里: IIS6.0服務器完美開啟Gzip壓縮

啟用動態內容壓縮

II7中自帶了gzip功能,理論上應該比ii6配置起來應該簡單一點,但是容易出的問題比較多。有的II7配置web服務器角色的時候可能沒有安裝啟用動態內容壓縮,所以這個鈎子是灰色的,需要再次安裝。

IIS7gzip壓縮

如圖提示:“為安裝動態內容壓縮模塊”

IIS7gzip壓縮

打開web服務器,右側添加角色服務,

IIS7gzip壓縮

找到動態內容壓縮並勾選,點擊下一步,等待安裝結束就可以了。

IIS7gzip壓縮

最后,在II7中,應用GZIP壓縮到所有網站中

IIS7gzip壓縮

 

Gzip臨時壓縮目錄給予寫入權限

配置完之后需要給予壓縮緩存目錄的寫入權限。地址可以看圖一。

因為iis6的緩存目錄的權限為IIS_WPG用戶組、IIS用戶寫入權限

在IIS 7.0中:IUSR內建帳號替代了IUSR_MachineName帳號IIS_IUSRS內建組替代了IIS_WPG組

所以,需要緩存目錄給予IUSR用戶組的寫入權限。

配置啟用壓縮的文件類型及其他選項

這就是網上能夠搜索到最多的教程了,為了確保教程的完整性,我復制粘貼下。

IIS並不是對所有內容都啟用了壓縮,而是有選擇的進行壓縮。我們無法直接在IIS7管理器中配置這些壓縮選項。我們首先需要在C:\Windows\System32\inetsrv\config文件夾下找到applicationhost.config文件,打開之后找到如下一節內容:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression>

可以看到iis7的gzip壓縮是基於文件的mimetype的,如html.css就統一歸納到“text/*”中

另外對於JS文件的壓縮:

由於js文件通常穩定之后不會再被修改了,因此建議改成靜態壓縮——即把dynamicTypes這一節中的application/x-javascript挪到靜態壓縮節中。這樣保證每次腳本都是被壓縮過返回的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM