Nginx 笔记与总结(13)Nginx 的 gzip 压缩
使用 FireFox(40.0)訪問博客園(http://www.cnblogs.com/),觀察 http 頭信息
請求頭信息:
Accept-Encoding gzip, deflate 表示瀏覽器接受的壓縮方式有 gzip 和 deflate
?
響應頭信息:
Content-Encoding gzip 表示服務器返回內容的壓縮方式是 gzip
?
注意:圖片/mp3 這樣的二進制文件不必壓縮,因為壓縮比較小(而且壓縮需要消耗 CPU 資源)
?
?
在 nginx 下使用 gzip
nginx gzip 相關語法見:http://nginx.org/en/docs/http/ngx_http_gzip_module.html
gzip 配置的常見參數:
| gzip on|off | 是否開啟 gzip |
| gzip_buffers 32 4k|16 8k | 緩沖(壓縮在內存中緩沖幾塊(32,16),每塊的大小(4k,8k)) |
| gzip_comp_level [1-9] | 壓縮級別(級別越高,壓得越小,同時越消耗 CPU 計算資源)。推薦 6 |
| gzip_disable | 正則匹配。哪些 URI 不進行 gzip 壓縮 |
| gzip_min_length 200 | 開始壓縮的最小長度(單位字節),小于該長度就不壓縮 |
| gzip_http_version 1.0|1.1 | 開始壓縮的 http 版本協議(可以不設置,默認 1.1) |
| gzip_proxied | 設置請求代理服務器如何緩存 |
| gzip_types text/plain application/xml | 對哪些類型的文件使用壓縮,如 html(默認)、xml、css、js |
| gzip_vary on|off | 是否傳輸 gzip 壓縮標志 |
?
其中 gzip_type 的參數要使用文件 MIME 類型,可以在 /usr/local/nginx/conf/mime.type 文件中查看
[root@localhost nginx]# cat conf/mime.typestypes {text/html html htm shtml;text/css css;text/xml xml;image/gif gif;image/jpeg jpeg jpg;application/javascript js;application/atom+xml atom;application/rss+xml rss;text/mathml mml;text/plain txt;text/vnd.sun.j2me.app-descriptor jad;text/vnd.wap.wml wml;text/x-component htc;image/png png;image/tiff tif tiff;image/vnd.wap.wbmp wbmp;image/x-icon ico;image/x-jng jng;image/x-ms-bmp bmp;image/svg+xml svg svgz;image/webp webp;application/font-woff woff;application/java-archive jar war ear;application/json json;application/mac-binhex40 hqx;application/msword doc;application/pdf pdf;application/postscript ps eps ai;application/rtf rtf;application/vnd.apple.mpegurl m3u8;application/vnd.ms-excel xls;application/vnd.ms-fontobject eot;application/vnd.ms-powerpoint ppt;application/vnd.wap.wmlc wmlc;application/vnd.google-earth.kml+xml kml;application/vnd.google-earth.kmz kmz;application/x-7z-compressed 7z;application/x-cocoa cco;application/x-java-archive-diff jardiff;application/x-java-jnlp-file jnlp;application/x-makeself run;application/x-perl pl pm;application/x-pilot prc pdb;application/x-rar-compressed rar;application/x-redhat-package-manager rpm;application/x-sea sea;application/x-shockwave-flash swf;application/x-stuffit sit;application/x-tcl tcl tk;application/x-x509-ca-cert der pem crt;application/x-xpinstall xpi;application/xhtml+xml xhtml;application/xspf+xml xspf;application/zip zip;application/octet-stream bin exe dll;application/octet-stream deb;application/octet-stream dmg;application/octet-stream iso img;application/octet-stream msi msp msm;application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;audio/midi mid midi kar;audio/mpeg mp3;audio/ogg ogg;audio/x-m4a m4a;audio/x-realaudio ra;video/3gpp 3gpp 3gp;video/mp2t ts;video/mp4 mp4;video/mpeg mpeg mpg;video/quicktime mov;video/webm webm;video/x-flv flv;video/x-m4v m4v;video/x-mng mng;video/x-ms-asf asx asf;video/x-ms-wmv wmv;video/x-msvideo avi; } mime.types?
在 /usr/local/nginx/conf/nginx.conf 中開始配置:
[root@localhost nginx]# vim conf/nginx.confgzip 的上下文(context)可以是 http、server、location、if in location
如果針對針對整個網站發揮作用,就在 server 段中進行配置:
server {listen 80;server_name localhost;#gzip gzip on;gzip_buffers 32 4k;gzip_comp_level 6;gzip_min_length 200;gzip_types text/css text/xml application/x-javascript;平滑重啟 nginx。
?
此時訪問服務器上 ecshop 項目的某個 URL,觀察 http 響應頭:
由于是分塊傳輸,因此看不到 Content-Length。
?
此時再訪問一個內容較小的頁面(內容長度小于 200 字節),觀察 http 響應頭:
此時內容沒有被 gzip 壓縮。
?
在項目中 gzip_min_length 可設置較大值,如 4000(4k)。
轉載于:https://www.cnblogs.com/dee0912/p/4731347.html
總結
以上是生活随笔為你收集整理的Nginx 笔记与总结(13)Nginx 的 gzip 压缩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详细介绍docker中的build命令
- 下一篇: 在MAC中配置Tomcat+Nginx代