生产环境http请求使用gzip压缩

生产环境上因为带宽是贵重的资源,尤其对于小商家来说,如果对于请求不进行压缩,就是白白浪费带宽,不仅浪费钱,还可能影响别的正常业务。所以上生产环境前要简要是否开启了gzipo压缩。

假设接口没有压缩前,返回的包长是1454.生产环境http请求使用gzip压缩_第1张图片

判断接口使用使用gzip压缩,通常主流的压缩是gzip

命令行方式, 使用万能的curl命令

curl -I -H "Accept-Encoding: gzip,deflate" http://127.0.0.1/user/get-no-compress

返回如下:

HTTP/1.1 200
Server: nginx/1.17.3
Date: Thu, 21 May 2020 08:07:04 GMT
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: gzip

这里字段Content-Encoding显示gzip就表示已经使用压缩。

也可以通过浏览器,观察接口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2gcwSey-1590051896616)(https://pic-1251286439.cos.ap-guangzhou.myqcloud.com/input/20200521161112.png)]

那么如何是指压缩,目前主流部署方式是nginx+spring服务,通过nginx提供反向代理以及waf功能,通过spring来实现业务代码。

nginx跟spring都提供gzip的压缩方法

nginx 配置打开 gzip

    # gzip压缩功能设置
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
  • gzip_comp_level #压缩级别1-9 数字越大,压缩比越大,耗时越高,建议使用2
  • gzip_min_length #内容超过多少就启用压缩
  • gzip_buffers #压缩使用buffer,照着配就行了
  • gzip_types #返回类型支持压缩列表,如果没有使用的gzip就看下是否没有添加进去。

spring 配置打开 gzip

server:
  compression:
    enabled: true
    mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
    min-response-size: 1024

这里注意,如果spring跟nginx都配置了gzip相当于压缩了两次。

你可能感兴趣的:(springcloud)