亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

【nginx】關于gzip壓縮

2024-06-28 14:33:12
字體:
來源:轉載
供稿:網友

有這么一段配置文件

gzip on# 默認值: gzip off # 開啟或者關閉gzip模塊 gzip_static off;# nginx對于靜態文件的處理模塊# 該模塊可以讀取預先壓縮的gz文件,這樣可以減少每次請求進行gzip壓縮的CPU資源消耗。該模塊啟用后,nginx首先檢查是否存在請求靜態文件的gz結尾的文件,如果有則直接返回該gz文件內容。為了要兼容不支持gzip的瀏覽器,啟用gzip_static模塊就必須同時保留原始靜態文件和gz文件。這樣的話,在有大量靜態文件的情況下,將會大大增加磁盤空間。我們可以利用nginx的反向代理功能實現只保留gz文件。# 可以google"nginx gzip_static"了解更多 gzip_comp_level 4;# 默認值:1(建議選擇為4)# gzip壓縮比/壓縮級別,壓縮級別 1-9,級別越高壓縮率越大,當然壓縮時間也就越長(傳輸快但比較消耗cpu)。 gzip_buffers 4 16k;# 默認值: gzip_buffers 4 4k/8k # 設置系統獲取幾個單位的緩存用于存儲gzip的壓縮結果數據流。 例如 4 4k 代表以4k為單位,按照原始數據大小以4k為單位的4倍申請內存。 4 8k 代表以8k為單位,按照原始數據大小以8k為單位的4倍申請內存。# 如果沒有設置,默認值是申請跟原始數據相同大小的內存空間去存儲gzip壓縮結果。gzip_types  text/plain application/x-javascript text/CSS application/xml text/Javascript application/x-httpd-php image/jpeg image/gif image/png;#gzip_types mime-type [mime-type ...];# 默認值: gzip_types text/html (默認不對js/css文件進行壓縮)# 壓縮類型,匹配MIME類型進行壓縮# 不能用通配符 text/*# (無論是否指定)text/html默認已經壓縮 # 設置哪壓縮種文本文件可參考 conf/mime.types gzip_min_length  1k;# 默認值: 0 ,不管頁面多大都壓縮# 設置允許壓縮的頁面最小字節數,頁面字節數從header頭中的Content-Length中進行獲取。# 建議設置成大于1k的字節數,小于1k可能會越壓越大。 即: gzip_min_length 1024 gzip_http_version 1.0# 默認值: gzip_http_version 1.1(就是說對HTTP/1.1協議的請求才會進行gzip壓縮)# 識別http的協議版本。由于早期的一些瀏覽器或者http客戶端,可能不支持gzip自解壓,用戶就會看到亂碼,所以做一些判斷還是有必要的。 # 注:99.99%的瀏覽器基本上都支持gzip解壓了,所以可以不用設這個值,保持系統默認即可。# 假設我們使用的是默認值1.1,如果我們使用了PRoxy_pass進行反向代理,那么nginx和后端的upstream server之間是用HTTP/1.0協議通信的,如果我們使用nginx通過反向代理做Cache Server,而且前端的nginx沒有開啟gzip,同時,我們后端的nginx上沒有設置gzip_http_version為1.0,那么Cache的url將不會進行gzip壓縮 gzip_proxied any#gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] ...;# 默認值:off# Nginx作為反向代理的時候啟用,開啟或者關閉后端服務器返回的結果,匹配的前提是后端服務器必須要返回包含"Via"的 header頭。# off - 關閉所有的代理結果數據的壓縮# 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 - 無條件啟用壓縮 gzip_vary on;# 和http頭有關系,加個vary頭,給代理服務器用的,有的瀏覽器支持壓縮,有的不支持,所以避免浪費不支持的也壓縮,所以根據客戶端的HTTP頭來判斷,是否需要壓縮gzip_disable "MSIE [1-6].";# 禁用IE6的gzip壓縮,又是因為杯具的IE6。當然,IE6目前依然廣泛的存在,所以這里你也可以設置為“MSIE [1-5].”# IE6的某些版本對gzip的壓縮支持很不好,會造成頁面的假死,為了確保其它的IE6版本不出問題,所以建議加上gzip_disable的設置

  

1、gzip_comp_level

text/html - phpinfo():

0    55.38 KiB (100.00% of original size)1    11.22 KiB ( 20.26% of original size)2    10.89 KiB ( 19.66% of original size)3    10.60 KiB ( 19.14% of original size)4    10.17 KiB ( 18.36% of original size)5     9.79 KiB ( 17.68% of original size)6     9.62 KiB ( 17.37% of original size)7     9.50 KiB ( 17.15% of original size)8     9.45 KiB ( 17.06% of original size)9     9.44 KiB ( 17.05% of original size)

application/x-javascript - jQuery 1.8.3 (Uncompressed):

0    261.46 KiB (100.00% of original size)1     95.01 KiB ( 36.34% of original size)2     90.60 KiB ( 34.65% of original size)3     87.16 KiB ( 33.36% of original size)4     81.89 KiB ( 31.32% of original size)5     79.33 KiB ( 30.34% of original size)6     78.04 KiB ( 29.85% of original size)7     77.85 KiB ( 29.78% of original size)8     77.74 KiB ( 29.73% of original size)9     77.75 KiB ( 29.74% of original size)

這里沒有考慮CPU使用率,理想的壓縮級別在4-6之間

2、gzip_static

  • 該模塊可以讀取預先壓縮的gz文件,這樣可以減少每次請求進行gzip壓縮的CPU資源消耗。該模塊啟用后,nginx首先檢查是否存在請求靜態文件的gz結尾的文件,如果有則直接返回該gz文件內容。為了要兼容不支持gzip的瀏覽器,啟用gzip_static模塊就必須同時保留原始靜態文件和gz文件。這樣的話,在有大量靜態文件的情況下,將會大大增加磁盤空間。我們可以利用nginx的反向代理功能實現只保留gz文件。
  • # 可以google"nginx gzip_static"了解更多
  • 使用PHP預先壓縮如下
function gzip_static($path){    if ((extension_loaded('zlib') === true) && (is_file($path) === true))    {        $levels = array();        $content = file_get_contents($path);        foreach (range(1, 9) as $level)        {            $levels[$level] = strlen(gzencode($content, $level));        }        if ((count($levels = array_filter($levels)) > 0) && (min($levels) < strlen($content)))        {            if (file_put_contents($path . '.gz', gzencode($content, array_search(min($levels), $levels)), LOCK_EX) !== false)            {                return touch($path . '.gz', filemtime($path), fileatime($path));            }        }    }    return false;}

 3、開啟緩存

location ~* /.(ico|jpe?g|gif|png|bmp|swf|flv)(/?[0-9]+)?$ {    valid_referers none blocked www.xx.com xx.com      expires 30d;    log_not_found off;    access_log off;}   location ~* /.(js|css)$ {    expires 7d;     log_not_found off;    access_log off;}   location = /(favicon.ico|roboots.txt) {    access_log off;    log_not_found off;}   location ~* /.(htacess|svn|tar.gz|tar|zip|sql) {	   return 404;}location ~* /.(eot|ttf|otf|woff|svg)$ {        access_log   off;        expires max;}

4、gzip_vary

要了解 Vary 的作用,先得了解 HTTP 的內容協商機制。有時候,同一個 URL 可以提供多份不同的文檔,這就要求服務端和客戶端之間有一個選擇最合適版本的機制,這就是內容協商

vary機制是http1.1 協議的新特性,使得server端可以根據用戶請求返回給用戶不同的內容,現在互聯網中應用vary最廣的一點就是對壓縮的支持,例如當用戶請求帶著header “Accept-Encoding: gzip,deflate”,表明用戶期望從server端拿到壓縮的內容,這樣server端會給用戶一個包含壓縮內容的文件,并帶著vary頭“vary: Accept-Encoding”頭,和“Content-Encoding:gzip ”頭,如果用戶請求非壓縮的內容,源站也就可以給用戶非壓縮的內容。

這個出問題很多時候在于緩存服務的時候,比如squid

這個啟用之后,response header 中會加上 Vary: Accept-Encoding

gzip_vary on;

用 curl 驗證

[root@AY ~]# curl -I -v http://common.CUOXin.com/script/jquery.js* About to connect() to common.CUOXin.com port 80 (#0)*   Trying 42.121.254.191... connected* Connected to common.CUOXin.com (42.121.254.191) port 80 (#0)> HEAD /script/jquery.js HTTP/1.1> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2> Host: common.CUOXin.com> Accept: */*> < HTTP/1.1 200 OKHTTP/1.1 200 OK< Date: Sun, 22 Nov 2015 11:21:55 GMTDate: Sun, 22 Nov 2015 11:21:55 GMT< Content-Type: application/javascriptContent-Type: application/javascript< Content-Length: 94020Content-Length: 94020< Connection: keep-aliveConnection: keep-alive< Vary: Accept-EncodingVary: Accept-Encoding< Cache-Control: public,max-age=25920000Cache-Control: public,max-age=25920000< Last-Modified: Fri, 15 Feb 2013 03:06:57 GMTLast-Modified: Fri, 15 Feb 2013 03:06:57 GMT< Accept-Ranges: bytesAccept-Ranges: bytes< ETag: "7468b58329bce1:0"ETag: "7468b58329bce1:0"< * Connection #0 to host common.CUOXin.com left intact* Closing connection #0

  

 

參考

http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

http://serverfault.com/questions/253074/what-is-the-best-nginx-compression-gzip-level

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

http://weblogs.asp.net/owscott/iis-7-compression-good-bad-how-much


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产亚洲一区二区| 欧美一乱一性一交一视频| 久久躁狠狠躁夜夜爽| 视频在线观看一区二区| 日韩一区二区av| 国产女精品视频网站免费| 久久夜色精品亚洲噜噜国产mv| 91免费福利视频| 欧美重口另类videos人妖| 亚洲片国产一区一级在线观看| 欧美丝袜第一区| 国外成人免费在线播放| 久久97久久97精品免视看| 成人福利视频网| 日韩在线免费高清视频| 欧美一级视频在线观看| 日韩av免费看| 亚洲精品美女久久久久| 国产午夜精品全部视频在线播放| 亚洲人成五月天| 国内精品久久久久| 国产精品久在线观看| 亚洲欧美日韩国产精品| 国产精品无码专区在线观看| 日韩女在线观看| 国外成人在线视频| 日韩成人中文字幕在线观看| www.xxxx精品| 国产成人aa精品一区在线播放| 九九综合九九综合| 日韩免费黄色av| 亚洲国产小视频在线观看| 色婷婷av一区二区三区在线观看| 亚洲尤物视频网| 国产精品第二页| 久久夜色精品国产| 国产精品观看在线亚洲人成网| 国产精品国产福利国产秒拍| 日韩精品在线免费| 日韩成人性视频| 高清一区二区三区四区五区| 丁香五六月婷婷久久激情| 国产精品国产三级国产aⅴ浪潮| 一本大道久久加勒比香蕉| 精品毛片网大全| 欧洲日本亚洲国产区| 在线日韩欧美视频| 欧美精品成人91久久久久久久| 91网站在线看| 亚洲欧美国产制服动漫| 国产精品久久久久久婷婷天堂| 色婷婷综合久久久久中文字幕1| 国产精品v日韩精品| 欧美—级高清免费播放| 亚洲人成电影网站色www| 国模私拍一区二区三区| 色综合视频网站| 成人免费高清完整版在线观看| 国产69久久精品成人| 亚洲色图日韩av| 国产精品美女免费看| 91麻豆桃色免费看| 亚洲男人天堂手机在线| 精品国产成人在线| 国产日韩欧美中文在线播放| 深夜成人在线观看| 久久久久久亚洲| 国产不卡av在线| 亚洲经典中文字幕| 久热精品视频在线观看一区| 欧美成人免费va影院高清| 日韩av在线播放资源| 久久久91精品| 久久久久国产一区二区三区| 欧美大片免费看| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品美女免费看| 中文字幕欧美日韩va免费视频| 亚洲视频专区在线| 中文一区二区视频| 精品国产一区二区三区四区在线观看| 日韩免费黄色av| 91色视频在线导航| 欧美激情视频网址| 中文字幕日韩av综合精品| 亚洲大胆人体视频| 26uuu另类亚洲欧美日本老年| 欧美成人手机在线| 日韩精品视频在线| 成人美女免费网站视频| 久久国产精品久久久久久久久久| 国产欧美精品日韩精品| 欧美亚洲免费电影| 欧美性猛交xxxx黑人猛交| 精品亚洲一区二区三区| 亚洲精品一区二区网址| 91国产视频在线播放| 欧美激情中文字幕在线| 日韩欧美成人免费视频| 日韩美女视频中文字幕| 永久免费看mv网站入口亚洲| 午夜美女久久久久爽久久| 欧美性极品少妇精品网站| 国产精品女人久久久久久| 成人国产精品久久久久久亚洲| 欧洲亚洲妇女av| 欧美激情一区二区三级高清视频| 国产做受高潮69| 久久精品99国产精品酒店日本| 精品美女永久免费视频| 欧美久久精品午夜青青大伊人| 亚洲乱码av中文一区二区| 日本成人黄色片| 视频直播国产精品| 久久在线免费视频| 欧美黑人视频一区| 日本欧美一二三区| 91精品视频在线看| 欧美视频在线看| 97在线视频免费播放| 中文字幕视频在线免费欧美日韩综合在线看| 国产91色在线免费| 九九热最新视频//这里只有精品| 国内精品久久久久伊人av| 国产精品自产拍高潮在线观看| 日韩激情视频在线播放| 91干在线观看| 欧美在线观看视频| 最新国产成人av网站网址麻豆| 亚洲精品福利在线| 亚洲天堂视频在线观看| 精品久久久久久久久久国产| 色诱女教师一区二区三区| 色婷婷av一区二区三区久久| 麻豆成人在线看| 亚洲黄页视频免费观看| 久久久999国产精品| 成人看片人aa| 精品国内产的精品视频在线观看| 国产精品久久久久久久7电影| 国产精品久久久91| 亚洲**2019国产| 国产在线一区二区三区| 国产精品一久久香蕉国产线看观看| 日韩在线资源网| 欧美成人午夜免费视在线看片| 国产97在线视频| 久久久久久久久久久人体| 欧美黑人巨大xxx极品| 亚洲美女性生活视频| 91久久久久久久一区二区| 青青草一区二区| 欧美午夜www高清视频| 欧美成人亚洲成人| 色婷婷**av毛片一区| 欧美在线视频观看| 欧美精品免费在线| 亚洲精品日韩在线| 国产精品女人久久久久久| 国产日韩欧美在线播放| 中文字幕亚洲欧美日韩在线不卡| 日日狠狠久久偷偷四色综合免费| 91沈先生在线观看| 日韩一级黄色av|