【问题标题】:Nginx - Amazon Cloudfront - Gzip Doesn't work for JS filesNginx - Amazon Cloudfront - Gzip 不适用于 JS 文件
【发布时间】:2018-09-26 11:53:26
【问题描述】:

这是我们关于 Gzip 的 Nginx 配置:

        gzip on;
        gzip_disable "msie6";
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 5;
        gzip_min_length 256;
        gzip_buffers 16 8k;
        gzip_http_version 1.0;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg;

我们的 JS 文件由 Amazon Cloudfront 提供,但它们没有被压缩,即使在使 Amazon 缓存无效、清除 Wordpress 缓存并重新启动我们的服务器之后也是如此。

响应头给出:

curl -I https://d3opmxxxxnoy.cloudfront.net/wp-content/cache/min/1/def188074382933064c622c86c835c7f.js
HTTP/1.1 200 OK
Content-Type: application/javascript
Content-Length: 473913
Connection: keep-alive
Server: nginx
Date: Mon, 16 Apr 2018 16:45:55 GMT
Last-Modified: Mon, 16 Apr 2018 15:45:54 GMT
ETag: "5ad4c532-73b39"
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Access-Control-Allow-Origin: *
Accept-Ranges: bytes
X-Cache: Miss from cloudfront
Via: 1.1 63db28xxxx087abd41a1692.cloudfront.net (CloudFront)

我们怎么知道这是 Nginx 或 Amazon 配置问题?不知道问题出在哪里。

更新: 我们使用此工具在我们自己的域上执行了另一项测试:https://checkgzipcompression.com

它仍然说 JS 文件没有被压缩。所以这是一个 Nginx 问题 - 但不确定为什么会发生,因为我的 conf 似乎是正确的。

【问题讨论】:

  • 我们已经被困了很长时间,因为我们无法让 Cloudfront 压缩在我们的 create-react 应用程序上工作我不知道 gzip 压缩在 Javascript 上默认没有启用......问题本身是我自己的问题的答案谢谢。

标签: nginx gzip amazon-cloudfront


【解决方案1】:

响应头给出:

Content-Type: application/javascript

这是您的 gzip_types 语句中需要包含的 MIME 类型,以便压缩这些类型的响应。

您现有的值包含许多类似的 MIME 类型,但其中没有一种与服务器实际发送的内容完全匹配。

详情请见this document

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2017-07-20
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多