在Nginx服务器中如何启用gzip压缩
时间:2019-11-20 08:53:51 来源:igfitidea点击:
如何在Ubuntu Linux服务器上的Nginx中启用gzip/deflate?
在Nginx服务器上,如何为HTML/CSS/JS等文件启用gzip压缩?
在Nginx服务器中启用gzip压缩的步骤
编辑配置文件nginx.conf文件
或者创建一个新的配置文件:
$ sudo vi /etc/nginx/nginx.conf
在http块中添加以下内容:
## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # Specify the minimum length of the response to compress (default 20) gzip_min_length 500;
检查配置文件,确保没有错误:
$ nginx -t
重启nginx服务器
执行以下命令以重启或重新加载nginx服务器:
$ sudo service nginx reload
或者
$ sudo systemctl reload nginx
或者
$ sudo /etc/init.d/nginx reload
测试压缩是否生效
使用以下语法:
$ curl -I -H 'Accept-Encoding: gzip,deflate' https://your-domain-here/file.css $ curl -I -H 'Accept-Encoding: gzip,deflate' https://www.theitroad.com/index.html $ curl -I -H 'Accept-Encoding: gzip,deflate' https://www.theitroad.local/
输出示例:
HTTP/1.1 200 OK Server: nginx Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Connection: keep-alive Content-Encoding: gzip Content-Type: text/html Last-Modified: Mon, 13 Jun 2016 02:50:26 GMT
可以看到Content-Encoding: gzip,启用了压缩。
我们可以比较压缩和未压缩之间的大小:
下载未压缩文件:
$ curl -s --output text https://www.theitroad.local
下载压缩文件:
$ curl -s --output compressed -H 'Accept-Encoding: gzip,deflate' https://www.theitroad.local
比较文件大小:
$ ls -lh text compressed
关于Nginx模块ngx_http_gzip_module中的选项
gzip on
: 启用或禁用Nginx下的压缩响应。gzip_disable "msie6"
: 针对Microsoft IE6客户端,禁用压缩。gzip_vary on
: 启用或禁用插入Vary:Accept-Encoding响应头。此标头告知浏览器,客户端是否可以处理网站的压缩版本,尤其是当您的Nginx服务器位于CDN或其他反向缓存服务器之后。gzip_proxied any
: 确保我们为所有代理请求启用压缩。gzip_comp_level 6
: 我们可以设置响应的gzip压缩级别。可接受的值范围是1(最小)到9(最大)。gzip_buffers 16 8k
: 设置压缩缓冲区大小gzip_http_version 1.1
: 设置压缩响应所需的最低HTTP版本请求。gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript
: 除了text/html之外,还可以对指定的MIME类型的响应进行gziping处理。特殊值*匹配任何MIME类型。 text/html类型的响应始终被压缩。