时间: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 |