nginx 开启gzip

nginx 是一个高性能的 Web 服务器,为了提高网站的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手。为js,css,图片,字体等开启 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]\.";

开启缓存

配置

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

推荐一个:http://gtmetrix.com/可以对页面访问速度进行一个打分,类似google page speed。

用curl测试Gzip是否成功开启

curl -I -H "Accept-Encoding: gzip, deflate" "//www.slyar.com/blog/"

HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sun, 26 Aug 2012 18:13:09 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.2.17p1
X-Pingback: //www.slyar.com/blog/xmlrpc.php
Content-Encoding: gzip

可以把 //www.slyar.com/blog/ 换成 css,js,图片路径 看下

标签: nginx

添加新评论