为什么 CloudFront 不 GZIP 我的 HTML/JSP 页面

Why doesn't CloudFront GZIP my HTML/JSP pages

我已经在我的 Elastic Beanstalk/load-balanced Web 应用程序前面配置了 CloudFront,静态内容规则(Png 图像等)正在缓存并提供 GZIPPED。

但是我的 JSP 页面没有 Gzipped

请注意,我已通过将最小 TTL 设置为 0 将我的默认规则明确设置为不缓存,但这可能是 un-necessary,因为我的原始服务器未返回 Content-Length header 用于 JSP 页面,因此它永远不会被缓存。

CloudFront will only cache if...

  1. Filetype is supported (text/html is)
  2. Response is 1,000 -> 10,000,000 bytes (it is)
  3. Content-Length header must be provided (it is NOT)
  4. Content-Encoding must not be set (it is not)

这就解释了为什么它没有被缓存,很公平。

但是 为什么我的 HTML 页面没有 GZIPPED?仅供参考,我的 HTML 和 JSP 文件扩展名都是通过 JSP 处理器处理的。

看来我是对的,直到我的页面被修改为 return Content-Length 响应 header,CloudFront 既没有缓存也没有 GZIP 内容。