我打开CloudFront仪表板并单击分发ID,然后单击Origin选项卡并单击,选择默认原点,然后单击Edit。 试图添加" Accept-Encoding"在'标题名称'在自定义源标题下,将其值设置为" gzip",但它显示以下错误:
com.amazonaws.services.cloudfront.model.InvalidArgumentException: The parameter HeaderValue for Accept-Encoding is not empty. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidArgument; Request ID: 05685bb6-ca02-11e7-8a62-0b7037d34a58)
通过CloudFront启用gzip压缩可以做些什么?
答案 0 :(得分:6)
您无法将CloudFront配置为基于Accept-Encoding
标头进行缓存。来自aws docs的引用:
您可以将CloudFront配置为根据以下内容以外的任何请求标头的值进行缓存:
- 接受编码,
- 连接
- ...
但是,您可以将CloudFront配置为压缩supported 文件类型。 在CloudFront控制台“ 自动压缩对象”中,选择是。
注意:仅压缩大小在1,000到10,000,000字节之间的文件。当您使用S3或任何其他自定义来源时,CloudFront必须获得带有Content-Length
标头的响应,以便它可以确定文件的大小是否在CloudFront压缩的范围内。如果您使用的是S3,请转到CORS配置,然后将Content-Length
标头添加到允许的标头列表中。
如果您要您的来源来压缩文件,则设置取决于在该来源上运行的服务器。 服务器应该设置为使用Content-Encoding: gzip
标头将gzip压缩的内容提供给CloudFront,因此CloudFront不会对其进行压缩。
这些是基本准则,但具体设置取决于您的具体配置。