【Nginx】開啓 gzip和緩存

Nginx 開啓 gzip和緩存

時間:2016-09-23 16:42:37javascript

nginx 是一個高性能的 Web 服務器,以前也寫過一些關於 nginx 的文章。爲了提升博客的響應速度,能夠從設置 nginx 的 gzip 和緩存這2方面入手。爲字體開啓 gzip 和緩存能大大減小帶寬的消耗。php

開啓GZIP配置

# 開啓gzip
gzip on;

# 啓用gzip壓縮的最小文件,小於設置值的文件將不會壓縮
gzip_min_length 1k;

# gzip 壓縮級別,1-10,數字越大壓縮的越好,也越佔用CPU時間,後面會有詳細說明
gzip_comp_level 2;

# 進行壓縮的文件類型。javascript有多種形式。其中的值能夠在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

# 是否在http header中添加Vary: Accept-Encoding,建議開啓
gzip_vary on;

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

gzip_comp_level 參數

Nginx開啓gzip的壓縮效果
css

從圖中能夠看出,壓縮等級在 1 以後的壓縮效果都不是很明顯,所以設置的時候,設置 1 或者 2便可。html

開啓成功,則請求資源以下java

開啓緩存

配置nginx

location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { 
        access_log   off; 
        expires      30d;
}

location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
    access_log   off;
    expires      24h;
}

location ~* ^.+\.(html|htm)$ {
        expires      1h;
}

其中的緩存時間能夠本身根據須要修改。緩存

關於字體

爲靜態資源開啓緩存可以較少服務器帶寬的消耗,特別是在css中使用字體時,同時配合gzip壓縮可以大大減小下載字體形成的帶寬影響。服務器

設置字體緩存

須要注意的是,字體有不少格式,爲全部字體格式設置緩存是頗有必要的。app

location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
        access_log   off;
        expires max;
}

啓用gzip

只須要爲 ttf、otf 和 svg 字體啓用 gzip,對其餘字體格式進行 gzip 壓縮時效果不明顯。svg

gzip_types font/ttf font/otf image/svg+xml
各類字體類型壓縮效果能夠參考如下測試結果:

ttf字體壓縮效果

otf字體壓縮效果

svg字體壓縮效果

woff字體壓縮效果

eot字體壓縮效果

能夠看到對 woff 和 eot 進行 gzip 壓縮效果很差。

字體總結

擴展名 是否壓縮 Content-type
.eot application/vnd.ms-fontobject
.ttf font/ttf
.otf font/opentype
.woff font/x-woff
.svg image/svg+xml
相關文章
相關標籤/搜索