IIS 7.5 inconsistentemente arquivos Gzips (com PHP e ASP.NET)

3

Eu fiz algumas alterações no web.config de um servidor que executa o IIS 7.5 para melhorar o desempenho (principalmente o front-end).

Uma ferramenta de testes de terceiros diz que o site está executando "PHP / 5.3.10, ASP.NET" e, se a memória funcionar, é ASP.NET 4.5

Acho que é devido à estranha combinação de tecnologias (por exemplo, executar o PHP no IIS), mas tocar em algo me deixa nervoso.

Eu adicionei (apenas) as diretivas para expirar cabeçalhos e gzip do Configuração do servidor IIS H5BP

Acho que adicionei essas diretivas na tarde de 15 de janeiro de 2013. O histórico de testes do site da ferramenta de testes de desempenho da Pingdom é disponivel aqui .

Você pode ver onde o tamanho da transferência cai acentuadamente (clique na guia histórico).

Desde então, parece que toda vez que eu testo, arquivos diferentes (geralmente ativos como CSS e JS) são ou não são exibidos com o gzip, sem rima ou motivo. Às vezes, tudo parece ser servido com gzip, às vezes quase nada parece ser servido comprimido, mas geralmente é em algum lugar no meio (como você pode ver na história).

O que está acontecendo?

Como posso corrigir isso?

Este site não está em desenvolvimento ativo, enquanto alguns dados extras foram adicionados à página (scripts de plugins do Google Analytics que adicionei para melhorar o rastreamento) após o dia 15, não há nada que possa explicar essas grandes variações e inconsistências.

Meu melhor palpite é que ele está relacionado a recursos da CPU para compactação, e essa questão parece próxima: Por que a compactação gzip varia em eficiência no IIS?

    
por adam-asdf 26.01.2014 / 01:52

1 resposta

7

Encontrei um provável culpado nos comentários desta página; weblog.west-wind.com

Essencialmente, OOTB, o IIS só irá gzip se o arquivo for solicitado pelo menos duas vezes em 10 segundos.

Isso é sintonizado via web.config - infelizmente, ele é bloqueado por padrão, portanto, você precisa editar o applicationhost.config para alterar o overrideModeDefault="DENY" para ALLOW.

Referência para isso está aqui: forums.iis.net

Os snippets de configuração relevantes são os seguintes. Você verá que também estou mexendo com o tipo de conteúdo para fontes SVG, pois, por padrão, o IIS não os compactará; portanto, ao forçá-los a text / xml, eles também serão compactados. ( Google PageSpeed reclama sobre isso)

web.config

  <system.webServer>
        <serverRuntime frequentHitThreshold="1" enabled="true" />
        <staticContent>
              <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
              <remove fileExtension=".svg" />
              <mimeMap fileExtension=".svg" mimeType="text/xml" />
        </staticContent>
        <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
            <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
            <dynamicTypes>
                <add mimeType="*/*" enabled="true" />
            </dynamicTypes>
            <staticTypes>
                <add mimeType="image/svg+xml" enabled="true" />
                <add mimeType="text/xml" enabled="true" />
                <add mimeType="*/*" enabled="true" />
            </staticTypes>
        </httpCompression>
        <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
    </system.webServer>

applicationHost.config

      <section name="serverRuntime" overrideModeDefault="Allow" />
    
por 26.03.2014 / 04:11