会议

会议

会议

gzip  on;
gzip_vary  on;
gzip_min_length  100;
gzip_buffers  16 8k;
gzip_proxied  any;
gzip_types
    text/plain
    text/css
    text/javascript
    application/json
    application/javascript;

在此处输入图片描述

答案1

确保 nginx 安装了 Gzip 模块

2>&1 nginx -V | tr -- - '\n' | grep _module | grep gzip

输出应为:http_gzip_static_module

配置

服务器块下的主机配置文件。

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/x-javascript
    application/json
    application/xml
    application/rss+xml
    image/svg+xml/javascript;

服务 nginx 重新加载

测试

curl -H "Accept-Encoding: gzip" -I https://example.com/

答案2

您是否尝试过添加“ gzip_comp_level level;”?看起来您在配置中遗漏了某些内容。这里有一个可行的示例:

gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;

答案3

根据我的经验,您不能依赖浏览器开发人员控制台输出来检查 gzip 压缩。

您运行的任何防病毒软件都可能会拦截并解压缩 gzip 文件,以便在它们进入浏览器之前对其进行扫描。

我已在 Nginx 服务器上启用了 gzip,但在 chrome 开发控制台中没有看到任何证据。

但 curl 却揭示了真相……

curl -H "Accept-Encoding: gzip" -I https://example.com/

返回:

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 22 Jul 2018 16:22:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Link: <https://example.com/>; rel=shortlink
Access-Control-Allow-Origin: https://example.com
Content-Encoding: gzip

Content-Encoding: gzip您在响应标头中寻找的内容显然位于哪里。

你可能还想gzip_http_version 1.0;在 Nginx conf 中添加一条指令,因为默认情况下,http 1.1 是 Nginx 提供 gzip 服务所需的最低版本

相关内容