nginx 可以通过 gzip 模块实现对后端返回数据进行压缩,具体配置如下
http {
# 开启压缩功能
gzip on;
# 设置压缩级别
gzip_comp_level 6;
# 设置压缩类型
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 设置最小压缩文件大小
gzip_min_length 1000;
# 设置压缩缓冲区大小
gzip_buffers 4 32k;
# 设置压缩后数据的缓存时间
gzip_proxied any;
# 设置压缩比例
gzip_vary on;
# 过滤掉IE6等不支持压缩的浏览器
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
...
server {
listen 80;
server_name localhost;
...
location / {
# 将压缩后的数据发送给客户端
gzip_static on;
# 转发请求给后端服务器
proxy_pass http://backend;
}
}
...
}
以上配置中:
- gzip on 表示开启压缩功能
- gzip_comp_level 6 表示设置压缩级别为 6,
- gzip_types 指定要压缩的文件类型
- gzip_min_length 指定最小压缩文件大小
- gzip_buffers 指定压缩缓冲区大小
- gzip_proxied 指定缓存时间
- gzip_vary 表示启用 Vary 头,用于支持代理缓存
- gzip_static on 表示将压缩后的数据发送给客户端
- proxy_pass 指定后端服务器地址
需要注意的是,在使用 gzip 压缩时,需要确保客户端浏览器支持 gzip 压缩,否则可能会导致无法正常访问网站或者访问速度变慢。