Включить IIS7 GZIP - PullRequest
       52

Включить IIS7 GZIP

224 голосов
/ 31 марта 2009

Как я могу включить IIS7 для gzip статических файлов, таких как js и css, и как я могу проверить, действительно ли IIS7 gziping их перед отправкой клиенту?

Ответы [ 10 ]

240 голосов
/ 26 марта 2011

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

Вы можете включить сжатие GZIP полностью в файле Web.config. Это особенно полезно, если вы пользуетесь виртуальным хостингом и не можете настроить IIS напрямую или хотите, чтобы ваша конфигурация передавалась между всеми целевыми средами.

<system.webServer>
  <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

Тестирование

Чтобы проверить, работает ли сжатие, используйте инструменты разработчика в Chrome или Firebug для Firefox и убедитесь, что заголовок ответа HTTP установлен:

Content-Encoding: gzip

Обратите внимание, что этот заголовок не будет присутствовать, если код ответа равен 304 (не изменен). В этом случае выполните полное обновление (удерживайте нажатой клавишу shift или управляйте нажатием кнопки обновления) и проверьте снова.

57 голосов
/ 28 февраля 2014

Вам потребуется включить эту функцию на панели управления функциями Windows:

IIS feature screenshot

36 голосов
/ 31 марта 2009

Глобальный Gzip в HttpModule

Если у вас нет доступа к окончательному экземпляру IIS (общий хостинг ...), вы можете создать HttpModule, который добавляет этот код в каждое событие HttpApplication.Begin_Request:

HttpContext context = HttpContext.Current;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;

Тестирование

Спасибо, ни одно решение не обходится без тестирования. Мне нравится использовать плагин Firefox « Liveheaders », он показывает всю информацию о каждом http-сообщении между браузером и сервером, включая сжатие, размер файла (который можно сравнить с размером файла на сервере).

5 голосов
/ 16 ноября 2016

под windows 2012 r2 можно найти здесь:

enter image description here

1 голос
/ 24 апреля 2017

Мне нужно было только добавить функцию в Windows, как упоминал Чарли. Для людей, которые не могут найти ее в Windows 10 или сервере 2012+, найдите ее, как показано ниже. Я немного боролся

Windows 10

enter image description here

Windows Server 2012 R2

enter image description here

оконный сервер 2016

enter image description here

1 голос
/ 12 ноября 2013

Если вы также пытаетесь сжать динамические страницы (например, aspx) и он не работает, вероятно, это связано с тем, что этот параметр не включен (вам необходимо установить модуль динамического сжатия содержимого с использованием функций Windows):

http://support.esri.com/en/knowledgebase/techarticles/detail/38616

1 голос
/ 01 апреля 2009

Если вы используете YSlow с Firebug и анализируете производительность своей страницы, YSlow наверняка сообщит вам, какие артефакты на вашей странице не являются gzip'd!

0 голосов
/ 07 сентября 2018

Для всех бедных парней, которым приходится бороться с немецким / немецким сервером:)

auf deutsch bitte schön

0 голосов
/ 30 апреля 2014

Еще один простой способ тестирования без установки чего-либо, также он не зависит от версии IIS. Вставьте свой URL в эту ссылку - SEO Checkup

test gzip

Для добавления в web.config: http://www.iis.net/configreference/system.webserver/httpcompression

0 голосов
/ 03 ноября 2010

Попробуйте Firefox с установленными аддонами Firebug. Я использую это; отличный инструмент для веб-разработчика.

Я также включил сжатие Gzip в IIS7, используя web.config.

...