brotli配置
brotli
语法:brotli on | off
默认值:off
作用域:http、server、location、if
说明:是否启用brotli压缩
brotli_buffers
语法:brotli_buffers number size
默认值:brotli_buffers 32 4k | 16 8k
作用域:http、server、location
说明:设置系统获取几个单位的缓存用于存储brotli的压缩结果数据流;
例如 32 4k代表以4k为单位,按照原始数据大小以4k为单位的32倍申请内存。
brotli_comp_level
语法:brotli_comp_level 0..11
默认值:brotli_comp_level 6
作用域:http、server、location
说明:brotli_comp_level压缩比,0压缩比最小处理速度最快,11压缩比最大但处理最慢;数字越大压缩比越好,也越消耗CPU
brotli_min_length
语法:brotli_min_length length
默认值:gzip_min_length 20
作用域:http、server、location
说明:设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
brotli_window
语法:brotli_window size
默认值:brotli_window 512k
作用域:http、server、location
说明:brotli使用的窗口值。
brotli_types
语法:brotli_types mime-type
默认值:gzip_types test/html
作用域:http、server、location
说明:匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。
配置案例
# btotli
brotli on;
brotli_comp_level 3;
brotli_buffers 16 8k;
brotli_types text/plain application/x-javascript application/json text/css application/xml;
gzip配置
gzip
语法:gzip on | off
默认值:gzip off
作用域:http、server、location、if
说明:开启或关闭gzip模块
gzip_buffers
语法:gzip_buffers number size
默认值:gzip_buffers 4 4k
作用域:http、server、location
说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流;
例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存;
如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。
gzip_comp_level
语法:gzip_comp_level 1..9
默认值:gzip_comp_level 1
作用域:http、server、location
说明:gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢;数字越大压缩比越好,也越消耗CPU
gzip_min_length
语法:gzip_min_length length
默认值:gzip_min_length 0
作用域:http、server、location
说明:设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取;
默认值是0,不管页面多大都压缩。
建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024
gzip_http_version
语法:gzip_http_version 1.0 \ 1.1
默认值:gzip_http_version 1.1
作用域:http、server、location
说明:识别http的协议版本;由于早期的一些浏览器或者http客户端,可能不支持gzip自解压,用户就会看到乱码,所以做一些判断还是有必要的。
gzip_types
语法:gzip_types mime-type
默认值:gzip_types test/html
作用域:http、server、location
说明:匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。
案例
# gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain application/x-javascript application/json text/css application/xml;
gzip_vary on;
完整配置
server {
listen 80;
server_name XXXX;
# btotli
brotli on;
brotli_comp_level 6;
brotli_buffers 16 8k;
brotli_types text/plain application/x-javascript application/json text/css application/xml;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript application/json text/css application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6].";
#charset utf-8;
#root /data/www;
location / {
include vhosts/common.conf;
}
# 异常处理
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /data/www/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
参考
Nginx 为站点启用 Brotli 压缩算法
HttpGzip模块