我有一个在 Azure 上运行的 CentOS 虚拟机。我在 vm 上有几个 WordPress 站点,我正在使用 Azure CDN。有没有办法配置 CDN 以提供压缩内容?另外,我正在使用 W3 Total Cache。
问问题
134 次
2 回答
0
据我所知,在将文件提供给客户端之前,无法配置 CDN 来压缩文件。但是,您当然可以在将文件上传到 Blob 存储时对其进行压缩,因此 CDN 将提供已压缩的文件。反正我就是这么做的。下面是一段 C# 代码,演示了我如何在将文件上传到 Azure blob 存储之前对其进行压缩:
var blobData = new byte[] { ... you data goes here ... };
var stream = new MemoryStream();
var zipStream = new GZipStream(stream, CompressionMode.Compress))
zipStream.Write(data, 0, blobData.Length);
zipStream.Close();
var storageCredentials = new StorageCredentials("myaccountname", "mykey");
var storageAccount = new CloudStorageAccount(storageCredentials, true);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("$root");
var blob = container.GetBlockBlobReference("mycompressedfile.txt");
blob.Properties.ContentEncoding = "gzip";
blob.UploadFromStream(stream);
于 2014-09-10T21:07:26.567 回答
0
更新答案:所有 3 个 Azure CDN 提供商;Verizon、Akamai 和 Microsoft 支持根据 Accept-Encoding 请求标头压缩端点上的资源以返回给客户端。有关详细信息,请参阅文档 https://docs.microsoft.com/en-gb/azure/cdn/cdn-improve-performance#compression-rules
资源必须满足特定标准,并且资源 MIME 类型被明确配置用于压缩。
于 2019-07-16T15:51:18.663 回答