我在Azure上运行了一个CentOS虚拟机。我在vm上有几个WordPress站点,我正在使用Azure CDN。有没有办法配置CDN来提供压缩内容?另外,我正在使用W3 Total Cache。
答案 0 :(得分: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);
答案 1 :(得分:0)
更新的答案: 所有3个Azure CDN提供程序; Verizon,Akamai和Microsoft支持基于Accept-Encoding请求标头压缩端点上的资源以返回到客户端。 请参阅文档以获取更多详细信息 https://docs.microsoft.com/en-gb/azure/cdn/cdn-improve-performance#compression-rules
资源必须满足某些条件,并且明确配置了资源MIME类型以进行压缩。