Поделиться через


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

Обзор

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

  • Атрибут doDynamicCompression элемента включает или отключает динамическое сжатие содержимого <urlCompression> на уровне сайта, приложения или папки.
  • Атрибут doStaticCompression элемента включает или отключает сжатие статического содержимого <urlCompression> на уровне сайта, приложения или папки.
  • Атрибут 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. На странице Выбор функций (Select features) нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки щелкните Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель на левый нижний угол, щелкните правой кнопкой "Пуск" и щелкните панель управления.
  2. В панель управления щелкните "Программы и компоненты", а затем выберите "Включить или отключить функции Windows".
  3. Разверните службы IIS, разверните веб-службы World Wide, разверните функции производительности, а затем выберите динамическое сжатие содержимого и (или) сжатие статического содержимого.
    Снимок экрана: диалоговое окно
  4. Щелкните OK.
  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, а затем веб-службы World Wide, а затем функции производительности.
  4. Если вы хотите установить динамическое сжатие и сжатие статического содержимого, выберите "Динамический сжатие HTTP", если требуется установить статическое сжатие.
    Снимок экрана: диалоговое окно
  5. Щелкните OK.

Инструкции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка staticCompressionIgnoreHitFrequency

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

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

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

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

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

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

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

Настройка

Атрибуты

Атрибут Description
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()