時間:2016-09-23 16:42:37javascript
nginx 是一個高性能的 Web 服務器,以前也寫過一些關於 nginx 的文章。爲了提升博客的響應速度,能夠從設置 nginx 的 gzip 和緩存這2方面入手。爲字體開啓 gzip 和緩存能大大減小帶寬的消耗。php
# 開啓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]\.";
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; }
只須要爲 ttf、otf 和 svg 字體啓用 gzip,對其餘字體格式進行 gzip 壓縮時效果不明顯。svg
gzip_types font/ttf font/otf image/svg+xml
各類字體類型壓縮效果能夠參考如下測試結果:
能夠看到對 woff 和 eot 進行 gzip 壓縮效果很差。
擴展名 | 是否壓縮 | Content-type |
---|---|---|
.eot | 否 | application/vnd.ms-fontobject |
.ttf | 是 | font/ttf |
.otf | 是 | font/opentype |
.woff | 否 | font/x-woff |
.svg | 是 | image/svg+xml |