web-dev-qa-db-ja.com

IIS 7サイトがgzip圧縮されていない理由をトラブルシューティングするにはどうすればよいですか?

W2K8を実行している単一のIIS7マシンに多数のWebサイトがあります。

Fiddler を使用して、何かが圧縮されているかどうかを判断します。何もありません。

だから、私はいくつかのことをグーグルで検索し、いくつかのことを試しました。私は以下を持っています...

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
Pure.Krome

基本について:

ブラウザが実際にAccept-Encodingヘッダーを送信していて、ファイアウォールによって削除されていないことを確認してください。

応答200およびWebサーバー圧縮で失敗した要求のトレースを有効にし、IIS7が応答を圧縮しようとしたときに何が表示されるかを確認します。

3
Tornal

テストでHTTP1.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