允许动态压缩的 IIS 设置

允许动态压缩的 IIS 设置

服务器没有动态压缩 js 和 css 文件。但奇怪的是,在其他 3 台服务器上测试时,它运行正常

发生的情况是,所有环境中的请求都指定它们接受 GZIP 编码,但不同之处在于服务器上的输出未指定 GZIP 内容编码,但其他环境指定了。

我们有一个动态脚本,用于设置内容和内容编码,并且除了这台服务器之外,它在所有其他环境中都运行良好。所以我认为这是 IIS 问题。为此,我从无法正常工作的服务器上的 MetaBase.xml 中物理复制了压缩元素,并将其粘贴到我的本地计算机中,尝试复制,但失败了。

每个设置看起来都应该启用压缩,但无论出于什么原因,该服务器都没有注意到添加的响应标头,如下所示:

"Content-encoding", "gzip"

短暂性脑缺血发作

安德鲁

答案1

仅通过脚本设置响应标头并不能“打开”压缩。它只会添加标头,而您并不想这样做。IIS 应该在压缩时自行添加标头。

您需要在 IIS 层为动态和静态资产启用压缩。您可以通过 Web 服务器级别的 UI 启用此功能,并在元数据库中优化设置。默认情况下,在 IIS6 上,启用动态压缩时,只有 ASP、EXE 和 DLL 文件的输出会被压缩。请注意,ASPX 明显缺失!

这是我在 IIS6 上用于压缩的元数据库配置(一些值通过 UI 设置,其他值手动编辑)。

    <IIsFilter  Location ="/LM/W3SVC/Filters/Compression"
    >
</IIsFilter>
<IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/deflate"
        HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
        HcCreateFlags="0"
        HcDoDynamicCompression="TRUE"
        HcDoOnDemandCompression="TRUE"
        HcDoStaticCompression="TRUE"
        HcDynamicCompressionLevel="4"
        HcFileExtensions="htm
            html
            txt
            css
            js
            xml"
        HcOnDemandCompLevel="10"
        HcPriority="1"
        HcScriptFileExtensions="asp
            aspx
            dll
            exe"
    >
</IIsCompressionScheme>
<IIsCompressionScheme   Location ="/LM/W3SVC/Filters/Compression/gzip"
        HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
        HcCreateFlags="1"
        HcDoDynamicCompression="TRUE"
        HcDoOnDemandCompression="TRUE"
        HcDoStaticCompression="TRUE"
        HcDynamicCompressionLevel="4"
        HcFileExtensions="htm
            html
            txt
            css
            js
            xml"
        HcOnDemandCompLevel="10"
        HcPriority="1"
        HcScriptFileExtensions="asp
            aspx
            dll
            exe"
    >
</IIsCompressionScheme>
<IIsCompressionSchemes  Location ="/LM/W3SVC/Filters/Compression/Parameters"
        HcCacheControlHeader="max-age=86400"
        HcCompressionBufferSize="8192"
        HcCompressionDirectory="c:\temp\IIS_temp_compressed"
        HcDoDiskSpaceLimiting="TRUE"
        HcDoDynamicCompression="TRUE"
        HcDoOnDemandCompression="TRUE"
        HcDoStaticCompression="TRUE"
        HcExpiresHeader="Wed, 01 Jan 1997 12:00:00 GMT"
        HcFilesDeletedPerDiskFree="256"
        HcIoBufferSize="8192"
        HcMaxDiskSpaceUsage="99614720"
        HcMaxQueueLength="1000"
        HcMinFileSizeForComp="1"
        HcNoCompressionForHttp10="TRUE"
        HcNoCompressionForProxies="FALSE"
        HcNoCompressionForRange="FALSE"
        HcSendCacheHeaders="FALSE"
    >
</IIsCompressionSchemes>

相关内容