Nginx - Amazon Cloudfront - Gzip 不适用于 JS 文件
Nginx - Amazon Cloudfront - Gzip Doesn't work for JS files
这是我们关于 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 缓存并重新启动我们的服务器之后也是如此。
响应 header 给出:
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 似乎是正确的。
响应 header 给出:
Content-Type: application/javascript
这是需要包含在您的 gzip_types
语句中以便压缩这些类型的响应的 MIME 类型。
您的现有值包含许多相似的 MIME 类型,但没有一个与服务器实际发送的内容完全匹配。
详情见this document。
这是我们关于 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 缓存并重新启动我们的服务器之后也是如此。
响应 header 给出:
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 似乎是正确的。
响应 header 给出:
Content-Type: application/javascript
这是需要包含在您的 gzip_types
语句中以便压缩这些类型的响应的 MIME 类型。
您的现有值包含许多相似的 MIME 类型,但没有一个与服务器实际发送的内容完全匹配。
详情见this document。