Deixe-me primeiro explicar por que escrevi este artigo e por que estou lutando com esse pequeno problema. Em primeiro lugar, ativar a compactação gzip de arquivos estáticos é muito útil para melhorar a velocidade de acesso do site e reduz efetivamente o tempo que os spiders levam para rastrear páginas estáticas. Ao mesmo tempo, não causará 200 0 aos spiders do Baidu. como ativar a compactação dinâmica de arquivos. 64 problema de rastreamento, então, por um lado, a velocidade rápida do site contribui para melhorar a experiência do usuário. Por outro lado, o blog do administrador do Google deixou claro este ano que a velocidade do site é um dos fatores de classificação e para o uso de hosts estrangeiros. para construir sites chineses do Baidu A otimização e o tempo insatisfatório levarão a menos rastreamento de páginas internas por Baidu Spider também mencionou isso antes em seu artigo de blog: Como a velocidade de carregamento da página da web afeta o efeito SEO? Em um período fixo de tempo, o tempo total que um spider leva para rastrear o site é fixo. Se a velocidade de rastreamento aumentar, o número de páginas rastreadas será maior e vice-versa.
Ok, vamos começar com o texto principal. Na questão 2 do artigo anterior “Resultados experimentais do rastreamento de páginas estáticas pelo spider e acionamento da compactação gzip”, fiz uma suposição sobre como a versão compactada das páginas estáticas gzip é salva no servidor. ficando confuso por um longo tempo Depois disso, descobri que o motivo final para os diferentes resultados do gzip retornados pelos dois hosts era a versão do iis, e não a configuração da pasta de cache, que imaginei ser muito pequena.
Na verdade, o iis7 tem uma atualização maior que o iis6 na compactação estática. No IIS6, a compactação estática é realizada em um thread diferente, portanto, após receber uma solicitação HTTP, a primeira enviada ao navegador. A versão HTML é descompactada e o IIS6 será iniciado. usar um thread diferente para compactar o arquivo e armazenar a versão compactada na pasta cache do arquivo compactado por um longo tempo. No passado, ou seja, no servidor IIS6, após a conclusão da compactação, para qualquer solicitação HTTP para a versão compactada do arquivo estático, o IIS6 chamava diretamente a versão compactada da pasta de cache e a retornava ao navegador.
Mas no IIS7, a compactação é executada no thread principal e, para economizar no custo da compactação, o IIS7 não salva versões compactadas de longo prazo de todas as solicitações HTTP, mas apenas arquivos estáticos que são frequentemente acessados pelos usuários. na primeira vez que o visitei, ele não estava compactado. A versão compactada foi retornada quando o visitei novamente em um curto período de tempo, mas a versão descompactada foi retornada quando o visitei após alguns minutos. Aqui podemos entender que o IIS7 não salva realmente a versão compactada na pasta de cache, mas apenas a salva na memória do servidor ou salva temporariamente a versão compactada na pasta de cache e a exclui após um tempo.
O método para o IIS7 definir quais arquivos são acessados com frequência e estão em conformidade com os padrões de compactação são as duas propriedades a seguir em system.webServer/serverRuntime, freqüenteHitThreshold e freqüenteHitTimePeriod. Se o IIS receber acesso a um arquivo estático que exceda o limite freqüenteHitThreshold dentro do período freqüenteHitTimePeriod, o IIS7 compactará o arquivo estático como o IIS6 e armazenará a versão compactada na pasta de cache do arquivo compactado por um longo tempo. Se uma versão em cache do arquivo já existir na pasta de cache quando um usuário acessar um arquivo no site, o IIS7 não julgará mais a lógica do freqüenteHitThreshhold e retornará diretamente a versão compactada ao navegador.
Essa configuração é realmente muito dolorosa, mas a resposta oficial da Microsoft é que ela pode ser usada para melhorar o desempenho do servidor. . . Portanto, se você deseja que o IIS7 seja capaz de compactar como o IIS6, existem duas soluções. Claro, ambas modificam os valores de freqüenteHitThreshold e freqüenteHitTimePeriod:
A primeira é adicionar o seguinte conteúdo ao web.config, ajustar FrequentHitThreshold para 1 e ajustar FrequentHitTimePeriod para 10 minutos
<sistema.webServer>
<serverRuntime habilitado=true
frequenteHitThreshold = 1
freqüenteHitTimePeriod=00:10:00/>
</system.webServer>
O segundo método é abrir %windir%/system32/inetsrv/appcmd.exe, inserir a seguinte string de comando na interface da linha de comando e pressionar Enter
definir config -section:system.webServer/serverRuntime -frequentHitThreshold:1
Funcionários da Microsoft sugerem que uma abordagem menos radical não é diminuir o freqüenteHitThreshold, mas aumentar o freqüenteHitTimePeriod, que é mais moderado para o desempenho do servidor. O que quero mencionar aqui é que para amigos que possuem VPS, é recomendado configurá-lo manualmente. Infelizmente, não posso alterá-lo. Pessoal, experimentem