Вопрос: Как я могу устранить неполадку, почему мой сайт IIS7 не является сжатием gzip?


У меня есть несколько сайтов на одной машине IIS7 с W2K8.

я использую обманщик чтобы помочь мне выяснить, сжато ли что-то или нет. Ничего.

Итак, я искал некоторые вещи и искал некоторые вещи. У меня есть следующее ...

C:\Windows\System32\inetsrv>appcmd set config -section:urlCompression /doDynamic
Compression:true
Applied configuration changes to section "system.webServer/urlCompression" for "
MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"

C:\Windows\System32\inetsrv>appcmd list config -section:urlCompression
<system.webServer>
  <urlCompression doDynamicCompression="true" />
</system.webServer>

C:\Windows\System32\inetsrv>appcmd list config -section:serverRuntime
<system.webServer>
  <serverRuntime frequentHitThreshold="1" />
</system.webServer>

Я убедился, что разделы urlCompression, httpCompression и serverRuntime разблокированы.

Я также добавил следующее к моему web.config: -

<system.webServer>
    <serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="00:10:00" />
    <!-- NOTE: This requires the following section to be unlocked: appcmd set config -section:urlCompression /doDynamicCompression:true -->
    <urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="true" />
    <httpCompression noCompressionForHttp10="False" noCompressionForProxies="False">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="4" staticCompressionLevel="9" />
        <dynamicTypes>
            <clear />
            <add mimeType="*/*" enabled="true" />
        </dynamicTypes>
        <staticTypes>
            <clear />
            <add mimeType="*/*" enabled="true" />
        </staticTypes>
    </httpCompression>
    <caching>
        <profiles>
            <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".gif" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".zip" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
            <add extension=".htm" policy="CacheUntilChange" kernelCachePolicy="DontCache" duration="07:00:00" location="Any" />
        </profiles>
    </caching>
    <staticContent>
        <clientCache cacheControlMaxAge="31.00:00:00" cacheControlMode="UseMaxAge" />
    </staticContent>
....
</system.webServer>

Поэтому, проверяя это, я не уверен, что я сделал неправильно ... ??? какие-либо предложения? как я могу отладить это, чтобы увидеть, что не читает это правильно и т. д.?

Я также делаю «принудительное обновление», когда я захватываю содержимое веб-сайта и т. Д. Определенно не получаю сжатый сервер :(

Пожалуйста помоги!

Обновление 1: запрос браузера включает в себя Accept-Encoding: gzip, deflate ,


5
2017-10-07 09:00


Источник


Пожалуйста, см. Мой ответ на этот вопрос. Это может помочь: serverfault.com/questions/505788/... - ianbeks


Ответы:


Основы:

Убедитесь, что браузер фактически отправляет заголовок Accept-Encoding и его не разделяют брандмауэры.

Включить отслеживание неудачных запросов в ответ 200 и сжатие веб-сервера и посмотреть, что он говорит, когда IIS7 пытается сжать ответ.


3
2017-10-07 11:43



Браузер определенно отправляет Accept-Encoding: gzip, deflate (для обоих вариантов). Можете ли вы предоставить дополнительную информацию о неудавшейся трассировке запроса, пожалуйста? - Pure.Krome
Прочитайте это <a href = "learn.iis.net/page.aspx/467/...;. На шаге 4 выберите ответ 200, а на шаге 5 установите флажок «WWW-сервер» и «Сжатие». Затем выполните шаги анализа. Надеюсь, что если применение компрессии не удастся, оно должно указывать на то, почему. - Tornal
Да, я испортил ссылку, но ее там - Tornal


Вы не используете HTTP 1.0 в своем тестировании? NoCompressionForHTTP10 = "False" не даст этого работать.

То, что я предлагаю, - начать сначала заново и заставить сжатие работать со значениями по умолчанию, а затем добавить части, пока они не сломаются снова. Ниже приведено значение по умолчанию для новой установки:

 <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/x-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>

1
2017-10-09 03:11



Как noCompressionForHTTP10 = «False» помешает этому работать? Установив для этого значение false, вы говорите ему сжимать для 1.0 .. ??? - Pure.Krome