詳解Nginx服務(wù)器的配置中開(kāi)啟文件Gzip壓縮的方法
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è)面。
Nginx的壓縮輸出有一組gzip壓縮指令來(lái)實(shí)現(xiàn)。相關(guān)指令位于http{….}兩個(gè)大括號(hào)之間。
下面大致講一下配置開(kāi)啟gzip壓縮的方法:
1、Vim打開(kāi)Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
2、找到如下一段,進(jìn)行修改
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary off; gzip_disable "MSIE [1-6]\.";
3、解釋一下
第1行:開(kāi)啟Gzip
第2行:不壓縮臨界值,大于1K的才壓縮,一般不用改
第3行:buffer,就是,嗯,算了不解釋了,不用改
第4行:用了反向代理的話,末端通信是HTTP/1.0,有需求的應(yīng)該也不用看我這科普文了;有這句的話注釋了就行了,默認(rèn)是HTTP/1.1
第5行:壓縮級(jí)別,1-10,數(shù)字越大壓縮的越好,時(shí)間也越長(zhǎng),看心情隨便改吧
第6行:進(jìn)行壓縮的文件類型,缺啥補(bǔ)啥就行了,JavaScript有兩種寫法,最好都寫上吧,總有人抱怨js文件沒(méi)有壓縮,其實(shí)多寫一種格式就行了
第7行:跟Squid等緩存服務(wù)有關(guān),on的話會(huì)在Header里增加"Vary: Accept-Encoding",我不需要這玩意,自己對(duì)照情況看著辦吧
第8行:IE6對(duì)Gzip不怎么友好,不給它Gzip了
這里再講一下gzip_proxied的相關(guān)配置參數(shù):
syntax: gzip_proxied off |expired | no-cache |no-store | private |no_last_modified | no_etag |auth | any ...; default: gzip_proxied off;
Nginx作為反向代理的時(shí)候啟用,開(kāi)啟或者關(guān)閉后端服務(wù)器返回的結(jié)果,匹配的前提是后端服務(wù)器必須要返回包含"Via"的 header頭。
off
關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮
expired
啟用壓縮,如果header頭中包含 "Expires" 頭信息
no-cache
啟用壓縮,如果header頭中包含 "Cache-Control:no-cache" 頭信息
no-store
啟用壓縮,如果header頭中包含 "Cache-Control:no-store" 頭信息
private
啟用壓縮,如果header頭中包含 "Cache-Control:private" 頭信息
no_last_modified
啟用壓縮,如果header頭中不包含 "Last-Modified" 頭信息
no_etag
啟用壓縮 ,如果header頭中不包含 "ETag" 頭信息
auth
用壓縮 , 如果header頭中包含 "Authorization" 頭信息
any
無(wú)條件啟用壓縮
4、:wq保存退出,重新加載Nginx
/usr/local/nginx/sbin/nginx -s reload
5、用curl測(cè)試Gzip是否成功開(kāi)啟
curl -I -H "Accept-Encoding: gzip, deflate" "http://www.slyar.com/blog/"
HTTP/1.1 200 OK Server: nginx/1.0.15 Date: Sun, 26 Aug 2012 18:13:09 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.2.17p1 X-Pingback: //www.slyar.com/blog/xmlrpc.php Content-Encoding: gzip
頁(yè)面成功壓縮
curl -I -H "Accept-Encoding: gzip, deflate" "http://www.dbjr.com.cn/blog/wp-content/plugins/photonic/include/css/photonic.css"
HTTP/1.1 200 OK Server: nginx/1.0.15 Date: Sun, 26 Aug 2012 18:21:25 GMT Content-Type: text/css Last-Modified: Sun, 26 Aug 2012 15:17:07 GMT Connection: keep-alive Expires: Mon, 27 Aug 2012 06:21:25 GMT Cache-Control: max-age=43200 Content-Encoding: gzip
css文件成功壓縮
curl -I -H "Accept-Encoding: gzip, deflate" "http://www.slyar.com/blog/wp-includes/js/jquery/jquery.js"
HTTP/1.1 200 OK Server: nginx/1.0.15 Date: Sun, 26 Aug 2012 18:21:38 GMT Content-Type: application/x-javascript Last-Modified: Thu, 12 Jul 2012 17:42:45 GMT Connection: keep-alive Expires: Mon, 27 Aug 2012 06:21:38 GMT Cache-Control: max-age=43200 Content-Encoding: gzip
js文件成功壓縮
curl -I -H "Accept-Encoding: gzip, deflate" "http://www.dbjr.com.cn/blog/wp-content/uploads/2012/08/2012-08-23_203542.png"
HTTP/1.1 200 OK Server: nginx/1.0.15 Date: Sun, 26 Aug 2012 18:22:45 GMT Content-Type: image/png Last-Modified: Thu, 23 Aug 2012 13:50:53 GMT Connection: keep-alive Expires: Tue, 25 Sep 2012 18:22:45 GMT Cache-Control: max-age=2592000 Content-Encoding: gzip
圖片成功壓縮
curl -I -H "Accept-Encoding: gzip, deflate" "http://www.slyar.com/blog/wp-content/plugins/wp-multicollinks/wp-multicollinks.css"
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:23:27 GMT
Content-Type: text/css
Content-Length: 180
Last-Modified: Sat, 02 May 2009 08:46:15 GMT
Connection: keep-alive
Expires: Mon, 27 Aug 2012 06:23:27 GMT
Cache-Control: max-age=43200
Accept-Ranges: bytes
相關(guān)文章
nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的方法
這篇文章主要介紹了nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Nginx學(xué)習(xí)之如何搭建文件防盜鏈服務(wù)的方法示例
這篇文章主要介紹了Nginx學(xué)習(xí)之如何搭建文件防盜鏈服務(wù)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Nginx之Http模塊系列之a(chǎn)utoindex模塊的具體使用
這篇文章主要介紹了Nginx之Http模塊系列之a(chǎn)utoindex模塊的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Nginx部署JavaWeb項(xiàng)目全過(guò)程
這篇文章主要介紹了Nginx部署JavaWeb項(xiàng)目全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Nginx配置檢測(cè)服務(wù)狀態(tài)的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx配置檢測(cè)服務(wù)狀態(tài)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Nginx 502 Bad Gateway錯(cuò)誤常見(jiàn)的4種原因和解決方法
這篇文章主要介紹了Nginx 502 Bad Gateway錯(cuò)誤常見(jiàn)的4種原因和解決方法,本文適用FastCGI環(huán)境,其中多數(shù)原因通過(guò)配置相關(guān)參數(shù)即可解決,需要的朋友可以參考下2015-05-05詳解在使用CDN加速時(shí)Nginx獲取用戶IP的配置方法
這篇文章主要介紹了在使用CDN加速時(shí)Nginx服務(wù)器獲取用戶IP的方法,文中針對(duì)PHP站點(diǎn)環(huán)境舉例來(lái)講,需要的朋友可以參考下2016-02-02Nginx的location路徑與proxy_pass匹配規(guī)則說(shuō)明
這篇文章主要介紹了Nginx的location路徑與proxy_pass匹配規(guī)則說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06