一、开启gzip
配置示例:
gzip on;
gzip_min_length 20k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml font/ttf font/otf image/svg+xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
参数说明:
gzip on
:开启gzip;
gzip_min_length
:设置允许压缩的页面最小字节(从header头的Content-Length中获取) 建议大于1k;
gzip_buffers
:设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值。
gzip_http_version
:识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码;
gzip_comp_level
:设置gzip压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大;
gzip_types
:设置需要压缩的MIME类型,如果不在设置类型范围内的请求不进行压缩;
gzip_vary
:启用应答头"Vary: Accept-Encoding",给CDN和代理服务器使用,针对相同url,可以根据头信息返回压缩和非压缩副本 ;
gzip_proxied
:nginx做为反向代理时启用,off(关闭所有代理结果的数据的压缩),expired(启用压缩,如果header头中包括"Expires"头信息),no-cache(启用压缩,header头中包含"Cache-Control:no-cache"),no-store(启用压缩,header头中包含"Cache-Control:no-store"),private(启用压缩,header头中包含"Cache-Control:private"),no_last_modefied(启用压缩,header头中不包含"Last-Modified"),no_etag(启用压缩,如果header头中不包含"Etag"头信息),auth(启用压缩,如果header头中包含"Authorization"头信息);
gzip_disable
:(IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库;
二、开启缓存
配置示例:
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
access_log off;
expires 30d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
access_log off;
expires 24h;
}
location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
access_log off;
expires max;
}
location ~* ^.+\.(html|htm)$ {
expires 1h;
}
使用说明:
- 不建议开启html缓存,如果页面修改,客户端不会更新。
- 使用字体缓存,同时开启字体gzip压缩效果更好:
gzip_types font/ttf font/otf image/svg+xml