通过压缩,可以减少网络传输。压缩的大致流程如下:
压缩带来的优点:
1)减小传输文件的大小
2)节约带宽资源
3)提高资源响应速度
压缩带来的缺点:
1)服务端压缩需要消耗 CPU 资源;
2)客户端解压需要消耗 CPU 资源;
配置压缩需要使用 ngx_http_gzip_module 模块,下面是实例配置:
gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/html text/css application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml; # make sure gzip does not lose large gzipped js or css files # https://web.archive.org/web/20080301065334/http://blog.leetsoft.com/2007/7/25/nginx-gzip-ssl gzip_buffers 16 8k; # Disable gzip for certain browsers. gzip_disable “MSIE [1-6].(?!.*SV1)”; # gzip_min_length 20;
使用 CURL 测试 GZIP 压缩是否生效,如果相应中包含 Content-Encoding: gzip 则表示开启成功。如下示例:
# curl --head --header "Accept-Encoding: gzip" "https://example.com/path/to.js" HTTP/1.1 200 OK Date: Wed, 20 May 2020 08:10:33 GMT Content-Type: application/javascript Last-Modified: Wed, 20 May 2020 02:04:22 GMT Connection: keep-alive Vary: Accept-Encoding Cache-Control: max-age=315360000 Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Content-Encoding: gzip
在 Firefox 中,Network 的 Transferred 与 Size 字段将显示文件的传输大小与实际大小。如果成功开启 GZIP,则 Transferred < Size。
部分文件无需启用压缩功能:
1)像图片、视频等资源,文件格式本身已经是压缩格式。再次压缩的效果会不明显,因此不建议压缩。
2)文件压缩会消耗 CPU 资源,需要对比压缩效率,才能决定是否需要压缩。
# 2021-01-16 #「Nginx」- 配置 GZIP 压缩
原文:https://www.cnblogs.com/k4nz/p/14286531.html