当nginx开启Gzip压缩功能后,能优化nginx的性能,通过压缩网站的资源css、js 、xml、html文件,进行适当的压缩比在传输时提高访问速度。相关配置记录如下:
一、配置
打开nginx得全局配置文件 vim /etc/nginx/nginx.conf
。
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# 是否启动gzip压缩,on代表启动,off代表开启
gzip on;
# 需要压缩的常见静态资源
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 由于nginx的压缩发生在浏览器端而微软的ie6很坑爹,会导致压缩后图片看不见所以该选项是禁止ie6发生压缩
gzip_disable "MSIE [1-6]\.";
# 如果文件大于1k就启动压缩
gzip_min_length 1k;
# 以16k为单位,按照原始数据的大小以4倍的方式申请内存空间,一般此项不要修改
gzip_buffers 4 16k;
# 压缩的等级,数字选择范围是1-9,数字越小压缩的速度越快,消耗cpu就越大
gzip_comp_level 2;
include conf.d/*.conf;
}
二、关键步骤
关键配置如下,仅打开 gzip on 不一定能生效,因此完整配置如下。
# 是否启动gzip压缩,on代表启动,off代表开启
gzip on;
# 需要压缩的常见静态资源
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 由于nginx的压缩发生在浏览器端而微软的ie6很坑爹,会导致压缩后图片看不见所以该选项是禁止ie6发生压缩
gzip_disable "MSIE [1-6]\.";
# 如果文件大于1k就启动压缩
gzip_min_length 1k;
# 以16k为单位,按照原始数据的大小以4倍的方式申请内存空间,一般此项不要修改
gzip_buffers 4 16k;
# 压缩的等级,数字选择范围是1-9,数字越小压缩的速度越快,消耗cpu就越大
gzip_comp_level 2;
配置完成后执行 nginx -t
检查配置,再通过nginx -s reload
重新加载配置。
三、检验
1、通过curl 命令检查,当响应出现Content-Encoding: gzip
表示成功。
curl -I -H "Accept-Encoding:gzip,deflate" "想要查看的网址"
如示例:
[root@instance-q2bm8kcv-1 conf]# curl -I -H "Accept-Encoding:gzip,deflate" "https://www.xxx.cn/"
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Wed, 12 Oct 2022 01:31:50 GMT
Content-Type: text/html
Last-Modified: Tue, 11 Oct 2022 08:00:40 GMT
Connection: keep-alive
ETag: W/"634522a8-2a39"
Cache-Control: private, no-store, no-cache, must-revalidate, proxy-revalidate
Content-Encoding: gzip
[root@instance-q2bm8kcv-1 conf]#
2、通过浏览器查看
浏览器打开开发者工具,选择network视窗。
如下图所示,即为成功(注意时Response Header)。
image.png
网友评论