前言
gzip(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過(guò)gzip壓縮后頁(yè)面大小可以變?yōu)樵瓉?lái)的30%甚至更小,這樣,用戶瀏覽頁(yè)面的時(shí)候速度會(huì)塊得多。gzip的壓縮頁(yè)面需要瀏覽器和服務(wù)器雙方都支持,實(shí)際上就是服務(wù)器端壓縮,傳到瀏覽器后瀏覽器解壓并解析。瀏覽器那里不需要我們擔(dān)心,因?yàn)槟壳暗木薮蠖鄶?shù)瀏覽器都支持解析gzip過(guò)的頁(yè)面。
無(wú)論是前端還是后端,在部署項(xiàng)目時(shí),時(shí)常免不了用到Nginx,小項(xiàng)目也時(shí)常做個(gè)反向代理啥的。今天就簡(jiǎn)單直接,聊一下其中的一個(gè)點(diǎn)――gzip。如有錯(cuò)誤,歡迎指正。
一般服務(wù)器端常用的是 Ubuntu、CentOS、Linux 等。自己若沒(méi)有服務(wù)器,可在本地把玩一下。
mac 安裝
mac下可直接用brew安裝,若未安裝brew可先行安裝
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew install nginx
默認(rèn)配置
安裝完成后會(huì)看到命令行含有以下信息,可以看到 nginx.conf所在路徑,這正是我們要找的配置文件。同時(shí)含有端口信息,當(dāng)啟動(dòng)Nginx時(shí),可以直接訪問(wèn)http://localhost:8080,當(dāng)看到下圖所示頁(yè)面,即安裝啟動(dòng)成功。
docroot: /usr/local/var/wwwdefault config: /usr/local/etc/nginx/nginx.confport:8080
幾個(gè)常用命令
nginx
重新熱啟動(dòng):nginx -s reload
關(guān)閉:nginx -s stop
測(cè)試語(yǔ)法:nginx -t
gizp配置:
gzip 相關(guān)配置可放在 http{}
或 server{}
或 location{}
層級(jí),若不同層級(jí)有重復(fù)設(shè)置優(yōu)先級(jí)為 location{} > server{} > http{}
1、開(kāi)啟 gzip壓縮
gzip on;
2、gzip http 版本
gzip_http_version 1.0;
3、禁止IE6進(jìn)行g(shù)zip壓縮(當(dāng)然現(xiàn)在已經(jīng)基本沒(méi)有人使用IE6了)
gzip_disable "MSIE [1-6]";
4、壓縮級(jí)別(1~9,一般為平衡文件大小和CPU使用,5是常用值,當(dāng)然跟實(shí)際機(jī)器的情況有關(guān))
gzip_comp_level 5;
5、最小壓縮臨界值(默認(rèn)的是20字節(jié))
gzip_min_length 20;
6、壓縮通過(guò)代理鏈接的客戶端數(shù)據(jù)
gzip_proxied any;
7、采用http協(xié)議版本 默認(rèn)是1.1 ,對(duì)于1.0的請(qǐng)求不會(huì)壓縮,如果設(shè)置成1.0,表示http1.0以上 的版本都會(huì)壓縮。(如果使用了proxy_pass 進(jìn)行反向代理,那么nginx和后端的 upstream server之間默認(rèn)是用 HTTP/1.0協(xié)議通信的。)
gzip_http_version 1.0;
8、代理緩存壓縮和原始版本資源,避免客戶端因Accept-Encoding不支持gzip而發(fā)生錯(cuò)誤的現(xiàn)象(現(xiàn)在一般都采用gzip)
新聞熱點(diǎn)
疑難解答
圖片精選