Como posso resolver porque meu site IIS7 não é compactado com gzip?

5

Eu tenho vários sites em uma única máquina IIS7 executando o W2K8.

Estou usando Fiddler para me ajudar a descobrir se algo está compactado ou não. Nada é.

Então, eu pesquisei algumas coisas e tentei algumas coisas. Eu tenho o seguinte ...

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>

Verifiquei se as seções urlCompression, httpCompression e serverRuntime estão desbloqueadas.

Eu também adicionei o seguinte ao meu 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>

Então, checando isso, eu não tenho certeza do que fiz de errado ... ??? alguma sugestão? Como posso depurar isso para ver o que não está sendo lido corretamente?

Eu também estou fazendo 'force-refresh' quando eu pego o conteúdo do site, etc. Definitivamente não estou ficando comprimido pelo servidor: (

Por favor, ajude!

Atualização 1: a solicitação do navegador inclui um Accept-Encoding: gzip, deflate .

    
por Pure.Krome 07.10.2009 / 11:00

2 respostas

3

Para o básico:

Verifique se o navegador está realmente enviando o cabeçalho Accept-Encoding e não está sendo removido por firewalls.

Habilite o Rastreamento de Solicitações Falhadas na resposta 200 e na Compressão do Servidor Web e veja o que é dito quando o IIS7 tentar compactar a resposta.

    
por 07.10.2009 / 13:43
1

Você não está usando o HTTP 1.0 em seus testes, não é? O noCompressionForHTTP10="False" impedirá que isso funcione.

O que eu sugiro é começar de novo e fazer com que a compactação funcione com os padrões, depois adicionar as partes de volta até que ela quebre novamente. Aqui está um padrão em uma nova instalação:

 <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>
    
por 09.10.2009 / 05:11