Как я могу получить сжатие gzip в IIS7 работает?


Я установил статическое и динамическое сжатие для IIS7, а также установил два web.config значения в моем приложении

7 68

7 ответов:

там была нить на forums.iis.net об этом во время бета-версии iis 7. Оказалось, что у парня не было установленных модулей, но похоже, что вы исключили это из своего вступительного предложения.

ключевым советом Microsofts для него было включить отслеживание неудачных запросов, чтобы узнать, что происходит не так. Это, возможно, одна из самых недооцененных функций IIS7, но, безусловно, одна из самых мощных.

  • Откройте Диспетчер IIS.
  • Go на вашем сайте и на панели действия (очень далеко справа) нажмите кнопку " трассировка неудачных запросов..."в разделе "Настройка".
  • Нажмите кнопку "Включить".
  • затем в представлении функции нажмите кнопку "правила трассировки неудачных запросов". Нажмите кнопку Добавить, далее введите 200 для кода состояния, затем нажмите кнопку Готово.

Если вы не видите "трассировка неудачных запросов" в области действий, вам нужно будет добавить эту функцию на сервер-либо с помощью мастера "добавить службы ролей" (Health и диагностика\трассировка) или через установщик веб-платформы (Products\Server\IIS: Tracing), а затем закройте и снова откройте Диспетчер IIS.

далее, повторите свой тест. Это создаст некоторую информацию журнала для нас, чтобы рассмотреть.

заглянуть c:\inetpub\logs\FailedReqLogFiles\w3svcx. Вы увидите кучу файлов с именем fr000xx.xml. Откройте любой из них в вашем браузере. (Кстати, если вы копируете эти файлы в любом месте, убедитесь, что freb.xsl есть. Кроме того, не удаляйте freb.язык xsl - если вы сделайте, просто удалите весь каталог или скопируйте его из другого места, так как IIS создает его только один раз для каждой папки.)

перейдите на вкладку "Сведения о запросе" и выберите "завершить трассировку запроса". Поиск страницы для "сжатия" - вы должны найти его в нескольких областях; один раз для статического контента, и один раз для динамического контента.

Если вы не найдете ни одного из них, IIS настроен неправильно. Если вы их найдете, вы должны увидеть их, а затем compression_success и a compression_do. Успех не требует пояснений; 'делать' указывает на то, что он сделал - в моем случае, он показал "OriginalSize 1462784 CompressedSize 179482"

Так как у вас не работает, надеюсь вы увидите что-то другое, что поможет вам решить проблему.

убедитесь, что вы отключили это, когда закончите, отключив трассировку неудачных запросов в области действий для вашего веб-сайта.

у нас была аналогичная проблема, и оказалось, что IIS7 выполняет здесь динамическое дросселирование на основе процессора..

http://www.iis.net/ConfigReference/system.webServer/httpCompression

dynamicCompressionDisableCpuUsage

необязательный атрибут uint.

указывает процент использования ЦП, при котором динамическое сжатие будет отключено.

Примечание: этот атрибут действует как верхний предел ЦП, при котором динамический сжатие отключено. Когда загрузка ЦП падает ниже значения, указанного в атрибуте dynamicCompressionEnableCpuUsage, динамическое сжатие будет повторно включено.

значение по умолчанию-90.


dynamicCompressionEnableCpuUsage

необязательный атрибут uint.

указывает процент использования ЦП, ниже которого будет включено динамическое сжатие. Значение должно быть от 0 до 100. Средняя загрузка ЦП рассчитывается каждые 30 секунд.

Примечание: этот атрибут действует как нижний предел ЦП, ниже которого включено динамическое сжатие. Если загрузка ЦП превышает значение, указанное в атрибуте dynamicCompressionDisableCpuUsage, динамическое сжатие будет отключено.

значение по умолчанию-50.

обратите внимание на значения по умолчанию -- если ваш IIS7 достигает 90% использования процессора, он будет отключить все динамические архивированные файлы пока загрузка процессора не опустится ниже 50%!

кроме того, некоторые отличные рекомендации и тесты здесь о реальной стоимости процессора GZIP.

http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx

короче говоря, если у вас регулярно нет динамических страниц, превышающих 200 Кб, это не проблема.

следуя замечательному совету JohnW, я тоже включил logging, чтобы найти виновника, хотя причина сбоя оказалась другой:

STATIC_COMPRESSION_NOT_SUCCESS 
Reason 14 
Reason NOT_FREQUENTLY_HIT

по данным на этой странице, в по умолчанию кажется, что страница должна быть поражена 2 раза в течение 10 секунд, чтобы быть"частым попаданием". Если вы действительно хотите, вы можете переопределить значение по умолчанию в applicationHost.config (%systemroot%\Windows\System32\inetsrv\config). По крайней мере, для меня это заблокированный атрибут, поэтому вы не сможете переопределить его в своей собственной сети.конфиг.

<serverRuntime frequentHitThreshold="1" />

кроме того, я отмечаю теперь, что так уже был этот ответ здесь: в IIS7, gzipped файлы не остаются таким образом.

Я решил свою проблему, установив динамическое сжатие при установке / удалении программ.

в системе.раздел веб-сервера вашего интернета.конфигурационный файл, добавьте следующие строки:

<remove fileExtension=".js" />  
<mimeMap fileExtension=".js" mimeType="application/x-javascript" />  

схема сжатия в IIS7 включена по умолчанию, но она отображает только один тип MIME javascript для сжатия, application/x-javascript. Добавление строки выше говорит IIS, чтобы дать все ваши .JS файлы, которые тип mime, что в свою очередь делает работу сжатия.

включить статическое сжатие. динамическое сжатие предназначено для динамических страниц, таких как asp, php, aspx и т. д.

вот ссылка ссылка конфигурации IIS для сжатия:

для меня это оказалось задание

noCompressionForProxies

как мы находимся на прокси здесь...снял с себя прокси и вуаля, компрессия.