A. 如何開啟gzip壓縮方法大全
IIS6.0啟用Gzip壓縮的方法:
1、新建Web服務擴展(如下圖)
dll路徑:「c:windowssystem32inetsrvgzip.dll」,然後啟用。
2、網站服務中開啟HTTP壓縮支持(如下圖)
臨時目錄需要給IIS用戶讀寫許可權。
3、修改IIS配置文件MetaBase.xml
文件路徑:「c:windowssystem32inetsrv」(請先備份至他處),打開後搜索「HcDynamicCompressionLevel」,並修改(確定已備份)「Compression/deflate」和「Compression/gzip」兩個片段的內容。下面的圖n和圖b所修改的內容用意是將js、css和php加入到壓縮的范疇,數字9代表壓縮等級。
(圖n)
(圖b)
4、重啟IIS服務使之生效
——————————————————分分割割—————————————————
Apache啟用Gzip壓縮的方法:
1、開啟模塊並添加配置項目
a、vi /etc/httpd/conf/httpd.conf
b、查找LoadMole (/LoadMole),加入「LoadMole deflate_mole moles/mod_deflate.so」這行
c、添加配置項目(下段內容)
復制代碼代碼如下:
<IfMole mod_deflate.c>
# 壓縮等級 9
DeflateCompressionLevel 9
# 壓縮類型 html、xml、php、css、js
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfMole>
2、重啟apache使之生效
service httpd start
——————————————————分分割割—————————————————
檢測是否支持Gzip
END
注意事項
1. 在編輯MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin
2. 修改完成後開啟iisadmin服務,並執行iisreset命令
關於SEO的測試
壓縮是否對SEO有影響,經測試,開啟後仍然可以被很好的收錄。
B. Nginx開啟和配置Gzip壓縮
nginx 是一個高性能的 Web 伺服器,合理配置nginx可以有效提高網站的響應速度。
本文介紹 nginx 的 gzip 和緩存開啟配置。
gzip的壓縮頁面需要瀏覽器和伺服器雙方都支持,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓並解析。
Nginx的壓縮輸出有一組gzip壓縮指令來實現。
相關指令位於 http{…} 兩個大括弧之間。
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; margin-top: 0px; margin-bottom: 1rem; overflow: auto; display: block; color: rgb(33, 37, 41); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"># 開啟gzip
gzip on;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6].";</pre>
關於具體的參數說明可以參考 nginx 的文檔 。
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; margin-top: 0px; margin-bottom: 1rem; overflow: auto; display: block; color: rgb(33, 37, 41); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">location ~* ^.+.(ico|gif|jpg|jpeg|png)$ {
access_log off;
expires 30d;
}
location ~* ^.+.(css|js|txt|xml|swf|wav)$ {
access_log off;
expires 24h;
}
location ~* ^.+.(html|htm)$ {
expires 1h;
}</pre>
其中的緩存時間可以自己根據需要修改。
C. 如何啟用網頁GZIP壓縮
下面」舒宇卓創站長「將和大家一起分享一下,希望對咱們站長有所幫助! 1.開啟網頁GZIP壓縮有什麼好處? Gzip開啟以後會將輸出到用戶瀏覽器的數據進行壓縮的處理,這樣就會減小通過網路傳輸的數據量,提高瀏覽的速度。 進而對於搜索引擎的收錄也有一定的好處,也大大提高了我們的用戶體驗度。 2.如何啟用IIS的Gzip壓縮功能: 首先要有網站管理許可權和伺服器遠程管理許可權 步驟如下: 第一、如果你需要壓縮靜態文件(HTML),需要在硬碟上建一個目錄,並給它「IUSR_機器名」這個用戶的寫許可權。如果壓縮動態文件(PHP,asp,aspx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。打開Internet信息服務(IIS)管理器,右擊「網站」—>「屬性」(注意:這里的網站是整個網站文件不是某個網站目錄),之後選擇「服務」。在「HTTP壓縮」框中選中「壓縮應用程序文件」和「壓縮靜態文件」,按需要設置「臨時目錄」和「臨時目錄的最大限制」。 第二、在Internet信息服務(IIS)管理器,右擊「Web服務擴展」—>「增加一個新的Web服務擴展」,在「新建Web服務擴展」框中輸入擴展名「HTTP Compression」,添加「要求的文件」為C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中「設置擴展狀態為允許」;這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮范圍內。因為默認的可壓縮文件並沒有這個擴展名。而管理界面中你又找不到可以增加擴展名的地方,這時候只能去修改它的配置文件了。 第三、使用文本編輯器打開C:\Windows\System32\inetsrv\MetaBase.xml(建議先備份),查找 IIsCompressionScheme標簽,有三個相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數,HcDynamicCompressionLevel,設置壓縮率,取值0~10,0不壓縮,10最高壓縮率,這里設置成9,9是性價比最高的一個。HcFileExtensions,需要壓縮的靜態文件擴展名,默認只有htm,html,txt,可以把js,css,xml添加進去。建議按原來的格式,用換行作為分隔。
D. 網站伺服器響應變慢應該怎麼辦
網站伺服器租用用戶在使用伺服器一段時間後會發現網站打開變慢,用戶就可以從伺服器的硬體和軟體方面來進行升級優化。
不管用戶使用的伺服器配置是新的還是剛升級完的,用戶都應該對其進行優化,以提升伺服器的性能跟它的整體利用率。西安智雲優創建議用戶可以從以下幾個方面進行優化:
一、使用伺服器的Gzip壓縮功能
一般比較大中型的網站內容頁面比價多,會造成佔用較大的內存,當客戶端訪問的時候,載入的速度也會受到影響,如果是這類網站,用戶可以用上海伺服器的Gzip頁面壓縮功能,將一個比較大的頁面盡量小一些,這樣可以減少網路傳輸的數量,起到客戶端訪問速度。正常情況下的電腦是可以使用Gzip壓縮功能的,而且還可以能夠針對JS文件、CSS文件和Html進行壓縮,多方面去進行優化網站訪問速度。
二、盡量減少http請求數
一般情況下從訪客訪問一個頁面到頁面完全展現出來,這過程是要耗費一些時間載入各種Scripts、CSS樣式表、Flash以及圖片的,這過程中只要載入,就會請求一次http,所以這樣的次數越多,時間耗費得越多,這樣一來,頁面的打開時間就越長,那如果是這樣的情況,用戶可以把CSS跟JS寫到頁面上,盡量避免外部調用,或者也可以把CSS文件和JS文件分來,在後台再進行合並,這樣客戶端瀏覽器相當於一次請求。所以盡量減少http的請求,減少外部各類文件的數量調用次數達到提升訪問速度的目的。
三、升級上海伺服器
在進行上海伺服器升級工作之前,盡量多方面去考慮,是要升級現有的上海伺服器還是要置換新的上海伺服器設備。隨著業務的不斷增長,一直在使用的上海伺服器遇到的問題比較多也是正常的。所以針對一些配置進行升級,比如說網路帶寬,增加硬體設備等,來滿足不斷在擴大的業務需求。
至於說要置換的新的上海伺服器,主要是因為可能在建站初期,選擇硬體配置相對比較差的,使用到現在已經不能滿足網站的發展,那隻能選擇購置新的伺服器。
對於硬體優化的部分伺服器租用完全可以信賴服務商的工作。選擇一家靠譜的服務商對於伺服器使用過程中出現的問題進行及時有效的處理是互聯網公司的明智選擇。
對於被攻擊目標來說,需要面對不同協議、不同資源的分布式的攻擊,分析、響應和處理的成本就會大大增加。對於一般的小型企業來說,通過自己來做到全面的防護不太實際且成本巨大。但是通過服務商部署的全面防護系統、單機硬防和集群防禦軟硬體給企業帶來不一樣安全體驗。
網站優化一般從這幾個方面考慮:
第一:最簡單暴力的方式是升級伺服器配置,升級cup,內存,硬碟,網路帶寬,這是最簡單直接的方式;但比較花錢 。
那麼這幾樣要素是怎樣影響網站響應速度的呢?硬碟有個讀寫效率問題,如果你的網站需要讀取存儲在伺服器上的文件等東西,那麼這個磁碟io就會影響效率;內存又是如何影響的呢?內存和硬碟的影響比較類似,但內存存儲的是較為及時數據,和程序聯系更為緊密一點,存儲處理效率
在很大因素上能直接受到影響。最後就是網路帶寬了,當網路帶寬較低,數據傳輸的效率就會被限制,即使你的伺服器各方面配置很ok,那也是沒辦法的,就如同被限制了高消費的富豪一樣,你有限范圍內有錢花不出去。。
第二:分析具體瓶頸,對應解決。
如果網站用戶規模較大,響應頻繁,這個時候就要考慮網站本身研發的質量如何?優化相關代碼,如將頁面靜態化,減少頁面和服務端響應次數,減少服務端介面響應的數據量,去除代碼中低端耗時的部分,減少資料庫操作,優化sql執行效率,前後端分離等等,手段非常多;這些都是在代碼層面進行優化。
1,帶寬可以說是體現一個網站的訪問速度,理論是帶寬越大訪問速度越快,有些站長為什麼網站搭建久了響應速度慢了呢?就是因為網站流量、訪客越來越多了,之前選擇的帶寬幾乎不夠用造成擁堵,這時候把帶寬升級一下就行了,員躍 科技 伺服器認為最好是選擇帶寬充足的伺服器,主要是性價比高的。
2,把圖片大小優化一下,最好圖片大小是在kb以內的不是在M以上的,當然如果是電商網站那就另當別論了。還有就是最好不要有flash的圖片文件,不僅影響響應速度還不利於網站優化。
3,動態程序開發的網站,盡量減少伺服器回傳(postback),即減少伺服器資料庫查詢次數,,使伺服器的負載降低。
4,在國內很多訪問量的網站都在後台生成靜態頁面,像新浪和搜狐的,不過這不是一件簡單的工作。
E. 怎麼開啟網頁Gzip壓縮
下面」舒宇卓創站長「將和大家一起分享一下,希望對咱們站長有所幫助! 1.開啟網頁GZIP壓縮有什麼好處? Gzip開啟以後會將輸出到用戶瀏覽器的數據進行壓縮的處理,這樣就會減小通過網路傳輸的數據量,提高瀏覽的速度。 進而對於搜索引擎的收錄也有一定的好處,也大大提高了我們的用戶體驗度。 2.如何啟用IIS的Gzip壓縮功能: 首先要有網站管理許可權和伺服器遠程管理許可權 步驟如下: 第一、如果你需要壓縮靜態文件(HTML),需要在硬碟上建一個目錄,並給它「IUSR_機器名」這個用戶的寫許可權。如果壓縮動態文件(PHP,asp,aspx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。打開Internet信息服務(IIS)管理器,右擊「網站」->「屬性」(注意:這里的網站是整個網站文件不是某個網站目錄),之後選擇「服務」。在「HTTP壓縮」框中選中「壓縮應用程序文件」和「壓縮靜態文件」,按需要設置「臨時目錄」和「臨時目錄的最大限制」。 第二、在Internet信息服務(IIS)管理器,右擊「Web服務擴展」->「增加一個新的Web服務擴展」,在「新建Web服務擴展」框中輸入擴展名「HTTP Compression」,添加「要求的文件」為C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中「設置擴展狀態為允許」;這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮范圍內。因為默認的可壓縮文件並沒有這個擴展名。而管理界面中你又找不到可以增加擴展名的地方,這時候只能去修改它的配置文件了。 第三、使用文本編輯器打開C:\Windows\System32\inetsrv\MetaBase.xml(建議先備份),查找 IIsCompressionScheme標簽,有三個相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數,HcDynamicCompressionLevel,設置壓縮率,取值0~10,0不壓縮,10最高壓縮率,這里設置成9,9是性價比最高的一個。HcFileExtensions,需要壓縮的靜態文件擴展名,默認只有htm,html,txt,可以把js,css,xml添加進去。建議按原來的格式,用換行作為分隔。
F. 將Js和CSS文件壓縮成min文件
個人建議從幾個方面入手:
1、在伺服器上啟用GZIP壓縮,添加css等靜態文件等。
2、把主頁、內容頁的CSS分開寫,公共部分單獨用一個CSS,這樣就可以減少CSS的大小。
3、優化CSS語法,並可以使用工具壓縮,但要注意用多個瀏覽器測試。
4、將一些JS調用盡量放到網頁底部
G. 如何開啟gzip壓縮
gzip是HTML壓縮演算法的一種,HTTP壓縮是在Web伺服器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮工作原理是:
Web伺服器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;
如果瀏覽器支持HTTP壓縮,Web伺服器檢查請求文件的後綴名;
如果請求文件是HTML、CSS等靜態文件,Web伺服器到壓縮緩沖目錄中檢查是否已經存在請求文件的最新壓縮文件;
如果請求文件的壓縮文件不存在,Web伺服器向瀏覽器返回未壓縮的請求文件,並在壓縮緩沖目錄中存放請求文件的壓縮文件;
如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
如果請求文件是ASPX等動態文件,Web伺服器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。
怎麼做gzip壓縮呢?大致有:在Contol Pannel開啟gzip、開啟http伺服器gzip、利用php本身的gzip。
IE6和火狐都支持客戶端gzip,在網頁傳輸之前,先使用gzip壓縮再傳輸給客戶端,客戶端接收之後由瀏覽器解壓顯示。
IIS6已經內建了gzip壓縮的支持。在IIS6上做gzip壓縮的方法是:
如果你需要壓縮靜態文件,可以先在硬碟上新建一個目錄,並給它「IUSR_機器名」這個用戶設置寫許可權。如果壓縮動態文件就可以不用這樣的,因為它的頁面是每次都動態生成的(頁面動態生成),壓縮完就放棄。然後在IIS管理器中,「網站」上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入「服務」標簽,選上啟用動態內容壓縮,靜態內容壓縮。給gzip的臨時目錄空間不要太大了200MB左右就夠了。
然後選中網站下面那個伺服器擴展,新建一個伺服器擴展。可以用任何你想用的名字,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然後啟用這個擴展。
這時候靜態內容是可以壓縮的,但是對於動態內容,aspx文件卻不在壓縮范圍內。我們只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個相同名字的段,
分別是
<IIsCompressionScheme Location =「/LM/W3SVC/Filters/Compression/deflate」
<IIsCompressionScheme Location =「/LM/W3SVC/Filters/Compression/gzip」
<IIsCompressionSchemes Location =「/LM/W3SVC/Filters/Compression/Parameters」
前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這里。HcDynamicCompressionLevel改成9,9是性價比最高的一個。
至此,怎麼做gzip壓縮的過程我們就都實現了,需要注意的是:網頁啟用了gzip壓縮後網站打開速度通常可能不會有太明顯的感覺(相對於瀏覽者),可以用一些特定的來檢查你的網頁是否壓縮過了,以及壓縮比和加快的速度。
H. gzip壓縮實踐
為提高網頁載入速度,啟用 gzip 縮減資源的大小是非常常見的手段。現代瀏覽器均支持 gzip 壓縮,並會為HTTP請求自動協商此類壓縮。
本文將對 gzip 的實踐和原理做一個簡單的總結。
web伺服器在接收到瀏覽器的請求之後,會檢查瀏覽器可以接受哪些壓縮方法,詳情可見下圖。
瀏覽器在請求頭中會帶上 Accept-Encoding 這個參數來說明自己支持哪些內容編碼方式。
而服務端返回的 Response Headers 中則存在一個 Content-Encoding ,用來說明數據的壓縮方法。
幾乎所有的瀏覽器都已經支持了 gzip ,並且有請求頭的驗證,所以基本不需要擔心兼容相關的問題。
壓縮前後的體積前後差異,可以在控制台中看到。可以說,對於js、css文件的壓縮率還是比較可觀的。
經過這種方式的配置,在服務端響應請求的時候會對文件進行壓縮,之後返回壓縮過後的內容。不過壓縮這一過程多多少少會佔用一些服務端的性能,具體壓縮的程度,也就是 gzip_comp_level 設置的值也會影響到佔用性能的多少,接下來我們來看一些網上搜集到的數據,了解不同值的設置對文件大小和CPU佔用的影響。
可以看到,壓縮級別從0到1時,文件大小明顯減小,CPU消耗略微上漲。而在之後文件減小的速率明顯放緩,在達到了5之後繼續增加壓縮級別,文件的體積也幾乎沒有縮小,但CPU消耗卻有較為明顯的上漲。
根據結論可以看出,如果是在服務端使用 gzip 壓縮的話,考慮到性能和壓縮率的取捨,將壓縮級別設置為一個較低的值,比如2之類的,是比較合理的。
我們也可以選擇在打包構建項目的時候就對文件進行gzip壓縮
這邊以打包一個 webpack 的前端項目為例
運行構建命令後可以看到,在生成 .js 和 .css 的同時還生成了對應的 .gz 文件。
在這種方式的壓縮中,我們完全可以把壓縮等級設置為一個比較高的值(默認),畢竟只是略微影響打包的時間,卻能獲取一個更小的體積的包,還是比較值得的。
以 nginx 為例,靜態壓縮需要使用 http_gzip_static_mole 這個模塊,這個模塊不是默認的,應使用 --with-http_gzip_static_mole 的配置參數啟用它
之後再配置中添加
這樣便可開啟靜態壓縮。
需要注意以下幾點:
I. 如何利用gzip壓縮網頁來提升網站瀏覽速度
純Tomcat 伺服器
如果您的 WEB 應用程序是跑在 Tomcat
伺服器下的,而且直接使用 Tomcat 所提供的 HTTP 服務,那建議你馬上動手,因為實在是太簡單了,你只需要在 server.xml
配置文件中給 HTTP Connector 增加一個 compression 的參數值為 on 並重啟 Tomcat
伺服器就立刻生效,配置如下:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" compression="on"/>
Tomcat
採用的是 HTTP/1.1 的 GZIP 壓縮協議,它會根據瀏覽器送過來的請求中的 accept-encoding 值是否包含 gzip
來判斷瀏覽器是否支持 gzip 壓縮協議,如果瀏覽器支持就啟用 gzip 壓縮,否則就不進行任何壓縮處理。Tomcat 中還有另外一個參數
compressableMimeType,這個參數可以用來指定壓縮哪種類型的內容,例如可以指定該配置值為:text/html,text
/plain ,則只壓縮 contentType 為 text/html 和 text/plain 的頁面,不過您最好也將 css 和
javascript 文件也算在壓縮的文件類型中,因為這兩者的壓縮效果也十分的明顯。
Apache 伺服器
在
apache 1.3 版本,大家常用 mod_gzip 對輸出內容進行壓縮,現在主流的瀏覽器都支持 gzip 解壓縮。在 apache2
下,這個模塊換名為 mod_deflate,對應的模塊文件名是 mod_deflate.so。mod_gzip 本文不做介紹,下面描述一下在
Apache 2 下如何啟用並配置 mod_deflate 模塊。默認安裝的 Apache 不管是 Windows 還是
Linux/Unix,都是不啟用該模塊的, Linux/Unix 下甚至不帶該模塊,你需要手工編譯這個模塊。
下面我們分別介紹在 Windows 和 Linux 操作系統下如何啟用並配置 mod_deflate 模塊。
在 Windows 下採用安裝程序安裝的 Apache 伺服器已經帶有 deflate 所需要的模塊 mod_deflate.so 和 mod_headers.so,我們只需要在 httpd.conf 配置文件中啟用並進行相關的配置即可,配置如下:
LoadMole deflate_mole moles/mod_deflate.so
LoadMole headers_mole moles/mod_headers.so
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
而
如果是 Linux/Unix 操作系統,如果你沒有在編譯安裝的過程中將所需要的兩個模塊 mod_deflate 和 mod_headers
編譯進去的話,那就稍微有點麻煩,首先我們先看如何在編譯安裝 Apache 過程中也同時編譯這兩個模塊,請在執行 configure
程序時增加兩個參數分別是:
# ./configure --enable-deflate --enable-headers
這樣在編譯完 Apache 後就可以直接在 httpd.conf 中啟用並配置 deflate 模塊了,配置的方法跟 Windows 平台下是相同的。
如
果說您的 Apache 已經在運行了,不想再重新編譯一次,那也可以選擇只編譯 deflate 模塊所需的文件 mod_deflate.c
和mod_headers.c。這兩個文件位於 {apache-src}/moles/filters/ 目錄下(其中 {apache-src}
為 apache 源文件所在的目錄)。使用如下命令來單獨編譯這兩個源文件。
# {apache-bin}/apxs -i -a -c {apache-src}/moles/filters/mod_deflate.c
# {apache-bin}/apxs –i –a –c {apache-src}/moles/filters/mod_headers.c
其中 {apache-bin} 為 Apache 安裝目錄下的 bin 目錄,接下來在 httpd.conf 直接配置該模塊即可。
很多時候你在單獨編譯 deflate 模塊的時候可能會碰到編譯錯誤,提示是:
Cannot load /opt/apache/moles/mod_deflate.so into server: /opt/apache/moles/mod_deflate.so: undefined symbol: deflate
解決的方法如下:
編輯 /usr/local/apache2/bin/apr-config 文件修改其中的 LDFLAGS 值為 "-lz",然後再重新編譯 mod_deflate 模塊,apxs -ica mod_deflate.c 即可。
為了省卻不必要的麻煩,請盡量在編譯安裝時直接加上 --enable-deflate --enable-headers 參數。
IIS 伺服器
微
軟的 IIS 伺服器同樣也是目前用得最多的 WEB 伺服器之一,而且用來運行 ASP 頁面也是必不可少的。IIS6,iis本身支持 gzip
壓縮,IIS5就比較費勁了,你可以找一些第三方的組件來處理,例如 httpzip,接下來我們介紹如何在 IIS6 中啟用壓縮功能。
打開 Internet 信息服務(IIS)管理器,右擊"網站"->"屬性",選擇"服務"。在 "HTTP壓縮" 框中選中 "壓縮應用程序文件" 和 "壓縮靜態文件",按需要設置 "臨時目錄" 和 "臨時目錄的最大限制",
設置網站屬性
接
下來配置 gzip 組件,在 Internet 信息服務(IIS)管理器,點擊 "Web 服務擴展"->"增加一個新的 Web
服務擴展...",在 "新建 Web 服務擴展" 框中輸入擴展名 "HTTP Compression",添加 "要求的文件" 為
C:\WINDOWS\system32\inetsrv\gzip.dll,選中 "設置擴展狀態為允許",如下圖所示:
設置 Web 服務擴展,新建 Web 服務擴展
還沒完呢,我們還需要修改一個配置文件,修改之前請先停止 IIS 服務,打開 C:\Windows\System32\inetsrv\MetaBase.xml,這個文件很大,找到下面一段信息:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
增加一些要進行壓縮的文件後綴,其中 HcFileExtensions 是靜態文件的擴展名,增加 js 和 css 等;HcScriptFileExtensions 為動態文件的擴展名,增加 aspx,保存後啟動 IIS 即可生效。
最
後我們介紹如何來測試前面所做的工作是否起效,你可能會覺得很奇怪,配置好了,用瀏覽器打開頁面正常,查看頁面源碼,內容並沒有變化,大小也跟原來一樣,
怎麼回事呢?這是因為瀏覽器已經把內容解壓了的結果,有兩個方法來判斷壓縮是否生效:第一,查看 WEB 伺服器的日誌,不管是 Apache 或者是
IIS,二者的訪問日誌格式都差不多是下面這種格式:
127.0.0.1 - - [14/May/2006:08:44:28 +0800] "GET /manual/style/css/manual.css HTTP/1.1" 200 19351
最
後兩個數字分別是 HTTP 的結果碼(200 表示 OK),19351
表示的是響應內容的大小,把這個大小跟你在瀏覽器上查看源碼的大小比較一下就可以知道是否生效。另外一種方法就是自己寫一個 HTTP
客戶端的小程序並設置 Accept-Encoding 的值為 gzip,deflate,由這個程序去請求伺服器端的某個 URL
地址,然後列印出響應的內容,如果是一堆亂碼,恭喜你,配置成功。下面是一段 Java 寫的測試客戶端代碼(需要用到
commons-httpclient 包):
HttpClient http = new HttpClient();
String url = http://www.softbar.com;
GetMethod get = new GetMethod(url);
try{
System.out.println("fetching url : "+ url);
get.addRequestHeader("accept-encoding", "gzip,deflate");
int er = http.executeMethod(get);
if(er==200){
System.out.println(get.getResponseContentLength());
String html = get.getResponseBodyAsString();
System.out.println(html);
System.out.println(html.getBytes().length);
}
}finally{
get.releaseConnection();
}
結論
以
上是目前比較流行的兩個 WEB 伺服器軟體以及 Tomcat 伺服器對於頁面壓縮的配置方法;其他的一些 J2EE
應用伺服器如果不支持這個功能的話可以考慮利用過濾器(Servlet Filter)來進行處理,具體的代碼以及配置方法可以參考 Resin
伺服器所提供的文檔。但是有一點需要提醒各位讀者的是,本文介紹的訪問只是在伺服器本身的響應速度已經足夠優化的情況下進行,也就是說在帶寬成為系統瓶頸
的時候才來考慮該方案。
J. 配置虛擬主機可以縮短訪問等待時間提高訪問速度
配置虛擬主機可以縮短訪問等待時間可以提高訪問速度
虛擬主機提高網站訪問速度的方法有:1.使用gzip壓縮功能,減少網頁大小;2.採用分頁技術,將一個網頁進行多個頁面展示;3.降低網頁中圖片的數量;4.減少頁面HTTP請求,採用CSS樣式、圖像映射屬性降低HTTP請求;
具體分析如下:
1.使用gzip壓縮功能
運用gzip技術能夠最大的壓縮比能夠是原尺寸的四分之一,所以壓縮比極高。當壓縮後的內容被客戶端的瀏覽器下載之後,就會進行自動的反解壓,可以在客戶端迅速打開,從而提升網頁的打開速度。
2.採用分頁技術
當網頁尺寸較大且涉及到的內容較多時,可以採用分頁技術,將一個網頁進行多個頁面展示,那麼用戶打開每一個頁面的時間就會變短,就能夠有效的提升網站的打開速度,降低燃輪用戶自身的等待時間。
3.降低網頁中圖片的數量
網頁打開速度慢一個非常重要的因素就是圖片尺寸大,數量多。有些網頁如果設計不當,逛逛整個頁面的尺寸高談就會達到數十M,那麼當網頁瀏覽器的下載速度只有幾十Kb時,自然難以提升網頁的打開速度。
4.減少頁面HTTP請求
如一個網頁中擁有很多backgroup圖像那麼每個圖像都會產生一個HTTP請求,於是打開一個頁面會出現很多時間,可以通過CSS樣式技術,將Backgroup圖像運用CSS樣式來代表,可以有效的降低HTTP請求,從而戚段碰提升網站的打開速度,也可以採用圖像映射屬性來進行設計,降低網頁圖片的直接載入,從而降低HTTP的請求。