一、开启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;
}

使用说明:

  1. 不建议开启html缓存,如果页面修改,客户端不会更新。
  2. 使用字体缓存,同时开启字体gzip压缩效果更好:
gzip_types  font/ttf font/otf image/svg+xml
Last modification:January 21st, 2019 at 03:29 pm