2023-11-02 分類: 網站建設
網站的訪問速度是由多個因素所共同決定的,這些因素例如應用程序的響應速度、網絡帶寬、服務器性能、與客戶端之間的網絡傳輸速度等等。其中最重要的一個因素是應用程序本身的響應速度,因此當你為網站性能所苦惱時,你第一個需要著手進行處理的便是盡可能的提升應用程序的執行速度,你可以使用緩存或者是優化代碼的執行效率來提升應用程序的速度。
但是,本文并不是介紹如何來提升應用程序的執行效率,前面提到的只不過是為了防止您病急亂投醫。在確保您的應用程序的性能已經達到足夠好,同時服務器的性能也完全滿足的情況下,不妨來試試網頁壓縮來進一步提升網頁的瀏覽速度,而且非常重要的是,它完全不需要任何的成本,只不過是會讓您的服務器CpU占用率稍微提升一兩個百分點而已或者更少。
網頁壓縮是一項由 WEb 服務器和瀏覽器之間共同遵守的協議,也就是說 WEb 服務器和瀏覽器都必須支持該技術,所幸的是現在流行的瀏覽器都是支持的,包括 IE、FireFox、Opera 等;服務器有 Apache 和 IIS 等。雙方的協商過程如下:
在實際的應用中我們發現壓縮的比率往往在 3 到 10 倍,也就是本來 50k 大小的頁面,采用壓縮后實際傳輸的內容大小只有 5 至 15k 大小,這可以大大節省服務器的網絡帶寬,同時如果應用程序的響應足夠快時,網站的速度瓶頸就轉到了網絡的傳輸速度上,因此內容壓縮后就可以大大的提升頁面的瀏覽速度。
接下來我們介紹幾種常用的環境下如何啟用網頁壓縮功能。
純 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"/> |
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 配置文件中啟用并進行相關的配置即可,配置如下:
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/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 wont work. You can use the following # workaround to get the desired effect: browserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Dont compress images SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies dont deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location> |
mod_deflate
和 mod_headers
編譯進去的話,那就稍微有點麻煩,首先我們先看如何在編譯安裝 Apache 過程中也同時編譯這兩個模塊,請在執行 configure 程序時增加兩個參數分別是:# ./configure --enable-deflate --enable-headers |
deflate
模塊了,配置的方法跟 Windows 平臺下是相同的。如果說您的 Apache 已經在運行了,不想再重新編譯一次,那也可以選擇只編譯 deflate
模塊所需的文件 mod_deflate.c
和 mod_headers.c
。這兩個文件位于 {apache-src}/modules/filters/
目錄下(其中 {apache-src}
為 apache 源文件所在的目錄)。使用如下命令來單獨編譯這兩個源文件。
# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c # {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c |
{apache-bin}
為 Apache 安裝目錄下的 bin 目錄,接下來在 httpd.conf 直接配置該模塊即可。很多時候你在單獨編譯 deflate
模塊的時候可能會碰到編譯錯誤,提示是:
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/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
參數。
網站標題:利用壓縮網頁來提升網站瀏覽速度
網址分享:http://m.newbst.com/news1/292101.html
成都網站建設公司_創新互聯,為您提供網站營銷、商城網站、云服務器、面包屑導航、定制網站、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容