Url-адрес сжатия <URLCompression>

Общие сведения

Элемент <urlCompression> задает следующие параметры для статического и динамического сжатия содержимого в IIS 7 и более поздних версиях:

  • Атрибут <urlCompression>doDynamicCompression элемента включает или отключает динамическое сжатие содержимого на уровне сайта, приложения или папки.
  • Атрибут <urlCompression>doStaticCompression элемента включает или отключает сжатие статического содержимого на уровне сайта, приложения или папки.
  • Атрибут dynamicCompressionBeforeCache указывает, будут ли службы IIS динамически сжимать содержимое, которое не было кэшировано. Если атрибут dynamicCompressionBeforeCache имеет значение true, службы IIS динамически сжимают ответ при первом выполнении запроса и помещает содержимое в очередь для сжатия. Последующие запросы обрабатываются динамически до тех пор, пока сжатый ответ не будет добавлен в каталог кэша. После добавления сжатого ответа в каталог кэша кэша кэшированный ответ отправляется клиентам для последующих запросов. Если dynamicCompressionBeforeCache имеет значение false, IIS возвращает несжатый ответ, пока сжатый ответ не будет добавлен в каталог кэша.

Примечание

Если атрибут dynamicCompressionBeforeCache имеет значение true при очистке ответа кэша вывода, динамическое сжатие не будет выполнено до того, как ответ будет помещен в выходной кэш. Однако если атрибут doDynamicCompression имеет значение true, динамическое сжатие по-прежнему будет выполняться после заполнения кэша вывода ответом.

Совместимость

Версия Примечания
IIS 10.0 Элемент <urlCompression> не был изменен в IIS 10.0.
IIS 8,5 Элемент <urlCompression> не был изменен в IIS 8.5.
IIS 8,0 Элемент <urlCompression> не был изменен в IIS 8.0.
IIS 7,5 В IIS 7.5 значение атрибута doDynamicCompression по умолчанию изменилось с false на true.
IIS 7.0 Элемент <urlCompression> появился в IIS 7.0.
IIS 6,0 Элемент <urlCompression> заменяет следующие свойства метабазы IIS 6.0:
  • DoStaticCompression
  • DoDynamicCompression
  • HcDoOnDemandCompression

Настройка

Сжатие HTTP обычно доступно в стандартной установке IIS 7 и более поздних версий. Однако по умолчанию устанавливается только статическое сжатие. Чтобы установить статическое или динамическое сжатие, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, затем — Производительность, а затем выберите Сжатие статического содержимого и (или) Динамическое сжатие содержимого. Щелкните Далее.
    Снимок экрана: страница .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или выключить компоненты Windows.
  3. Разверните узел Службы IIS, Веб-службы, Функции производительности, а затем выберите Динамическое сжатие содержимого и (или) Сжатие статического содержимого.
    Снимок экрана: диалоговое окно
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, наведите указатель мыши на пункт Администрирование, а затем щелкните диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли, а затем щелкните Веб-сервер (IIS) .
  3. В области Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Динамическоесжатие содержимого , если требуется установить динамическое сжатие, и Сжатие статического содержимого , если требуется установить статическое сжатие, а затем нажмите кнопку Далее.
    Снимок экрана: мастер добавления служб ролей с выбранными параметрами
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, Затем — Службы Интернета, а затем Функции производительности.
  4. Выберите Http Compression Dynamic (Динамическое сжатие HTTP), если требуется установить динамическое сжатие, и Статическое сжатие содержимого , если вы хотите установить статическое сжатие.
    Снимок экрана: диалоговое окно
  5. Нажмите кнопку ОК.

Инструкции

Включение или отключение статического и динамического сжатия для сайта или приложения

  1. Откройте диспетчер служб IIS.

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, инструменты, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем щелкните Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
      • Дважды щелкните элемент Администрирование, а затем дважды щелкните диспетчер служб IIS.
  2. В области Подключения перейдите к подключению, сайту, приложению или каталогу, для которых требуется включить сжатие.

  3. В области Главная дважды щелкните Сжатие.
    Снимок экрана: диспетчер служб IIS с выбранным сжатием на панели

  4. В области Сжатие проверка поля для включения статического или динамического сжатия или удалите метки проверка, чтобы отключить статическое или динамическое сжатие.
    Снимок экрана: область сжатия с включенным динамическим сжатием содержимого и статическим сжатием содержимого.

  5. Выполнив описанные выше действия, нажмите кнопку Применить в области Действия .

Включение или отключение статического и динамического сжатия для сервера

  1. Откройте диспетчер служб IIS.

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, инструменты, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем щелкните Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения выделите имя сервера.

  3. На домашней панели сервера дважды щелкните Сжатие.
    Снимок экрана: диспетчер служб IIS с выбранным сжатием на домашней панели сервера.

  4. В области Сжатие проверка поля для включения статического или динамического сжатия или удалите проверка метки, чтобы отключить статическое или динамическое сжатие.
    Снимок экрана: область сжатия сервера с включенным динамическим сжатием содержимого и статическим сжатием содержимого.

  5. Выполнив описанные выше действия, нажмите кнопку Применить в области Действия .

Настройка staticCompressionIgnoreHitFrequency

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения выберите сервер и дважды щелкните редактор конфигурации.

  3. В редакторе конфигурации в разделе выберите system.webServer, а затем — httpCompression.

  4. Для staticCompressionIgnoreHitFrequency введите True , чтобы отключить поведение, согласно которому статический файл сжимается только в том случае, если он попадает определенное количество раз в течение определенного периода времени, или введите False , чтобы включить поведение.
    Снимок экрана: панель редактора конфигурации со статическим сжатием Игнорировать частоту попадания, для параметра Задано значение True.

  5. В области Действия нажмите кнопку Применить.

Конфигурация

Атрибуты

Атрибут Описание
doDynamicCompression Дополнительный логический атрибут.

Указывает, включено ли динамическое сжатие для URL-адресов.

Примечание: В IIS 7.0 использование динамического сжатия было отключено по умолчанию из-за увеличения использования процессора, что могло снизить общую производительность веб-сервера. В IIS 7.5 были внесены изменения в динамическое сжатие, что привело к повышению производительности, поэтому динамическое сжатие включено по умолчанию в IIS 7.5 и более поздних версиях.

Значение по умолчанию — true.
doStaticCompression Дополнительный логический атрибут.

Указывает, включено ли статическое сжатие для URL-адресов.

Значение по умолчанию — true.
dynamicCompressionBeforeCache Дополнительный логический атрибут.

Указывает, сжимается ли доступный в данный момент ответ динамически перед его помещением в кэш вывода.

Значение по умолчанию — false.

Дочерние элементы

Отсутствует.

Образец конфигурации

Следующий пример конфигурации включает статическое сжатие и отключает динамическое сжатие для веб-сайта по умолчанию.

<configuration>
   <system.webServer>
      <urlCompression doStaticCompression="true" doDynamicCompression="false" />
   </system.webServer>
</configuration>

Пример кода

Следующие примеры кода позволяют включить статическое сжатие и отключить динамическое сжатие для веб-сайта по умолчанию.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/urlCompression /doDynamicCompression:"False" 

appcmd.exe set config "Default Web Site" -section:system.webServer/urlCompression /doStaticCompression:"True"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection urlCompressionSection = config.GetSection("system.webServer/urlCompression");
         urlCompressionSection["doStaticCompression"] = true;
         urlCompressionSection["doDynamicCompression"] = false;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim urlCompressionSection As ConfigurationSection = config.GetSection("system.webServer/urlCompression")
      urlCompressionSection("doStaticCompression") = True
      urlCompressionSection("doDynamicCompression") = False

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var urlCompressionSection = adminManager.GetAdminSection("system.webServer/urlCompression", "MACHINE/WEBROOT/APPHOST/Default Web Site");
urlCompressionSection.Properties.Item("doStaticCompression").Value = true;
urlCompressionSection.Properties.Item("doDynamicCompression").Value = false;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"

Set urlCompressionSection = adminManager.GetAdminSection("system.webServer/urlCompression", "MACHINE/WEBROOT/APPHOST/Default Web Site")
urlCompressionSection.Properties.Item("doStaticCompression").Value = True
urlCompressionSection.Properties.Item("doDynamicCompression").Value = False

adminManager.CommitChanges()