У меня есть виртуальная машина CentOS, работающая в Azure. У меня есть несколько сайтов WordPress на виртуальной машине, и я использую Azure CDN. Есть ли способ настроить CDN для обслуживания сжатого контента? Также я использую W3 Total Cache.
Обслуживание сжатых файлов с помощью Azure CDN и CentOS vm
Ответы (2)
Насколько мне известно, нет возможности настроить CDN для сжатия файлов перед их отправкой клиентам. Однако вы, безусловно, можете сжимать свои файлы при их загрузке в хранилище BLOB-объектов, и поэтому CDN будет обслуживать файлы, которые уже были сжаты. Во всяком случае, я этим занимаюсь. Вот фрагмент кода C #, демонстрирующий, как я сжимаю файлы перед их загрузкой в хранилище BLOB-объектов Azure:
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);
Обновленный ответ: все 3 провайдера Azure CDN; Verizon, Akamai и Microsoft поддерживают сжатие ресурсов на конечной точке для возврата клиенту на основе заголовков запросов Accept-Encoding. дополнительные сведения см. в документации. https://docs.microsoft.com/en-gb/azure/cdn/cdn-improve-performance#compression-rules.
Ресурс должен соответствовать определенным критериям, а тип MIME ресурса должен быть явно настроен для сжатия.