问题:
发现gzip没有生效,但是nginx.conf中是有开启gzip的配置的。部署前端的方式是docker部署,服务器nginx代理到项目中的nginx镜像,添加后gzip不生效
解决问题:
如果nginx中使用了多层代理,则需要将gzip_http_version 1.0配置项开启,否则gzip配置不起作用
gzip on;
#不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
#buffer
gzip_buffers 4 16k;
#用了反向代理的话,末端通信是HTTP/1.0,默认是HTTP/1.1
gzip_http_version 1.0;
#压缩级别,1-10,
gzip_comp_level 2;
#进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式application/javascript 就行了
gzip_types application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary off;
#IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";