【Nginx】開啟 gzip和緩存


Nginx 開啟 gzip和緩存

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

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

開啟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的壓縮效果

從圖中可以看出,壓縮等級在 1 之后的壓縮效果都不是很明顯,因此設置的時候,設置 1 或者 2即可。

開啟成功,則請求資源如下

開啟緩存

配置

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壓縮能夠大大減少下載字體造成的帶寬影響。

設置字體緩存

需要注意的是,字體有很多格式,為所有字體格式設置緩存是很有必要的。

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

啟用gzip

只需要為 ttf、otf 和 svg 字體啟用 gzip,對其他字體格式進行 gzip 壓縮時效果不明顯。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM