迁入阿里云后:解决了一个IIS动态内容压缩的问题

迁入阿里云后,有了更优质的带宽线路,一等价钱一等货,带宽成本更高了。节约带宽也就成为了重点要考虑的问题。

节约带宽首要的措施就是对除图片之外的所有内容进行压缩,迁移阿里云之前也是这么做的,但没现在这么重视。

今天发现博客RSS站点占用带宽很高,检查后发现返回给浏览器的响应内容竟然没被压缩。由于博客园RSS是全文输出,本来就是耗带宽大户,现在内容不压缩,可以称得上是耗带宽钉子户了。

【插播】如何知道一个网站是否对响应内容进行了压缩?在Firefox的Firebug中查看,如果Response Headers中有Content-Encoding:gzip或Content-Encoding:deflate ,就说明压缩了。见下图:

这个问题不是因为我们疏忽,忘了在IIS中启用这个站点的动态内容压缩(Http Dynamic Compression),而是另有原因。

IIS的动态内容压缩是基于MIME类型的,在IIS的默认设置(applicationHost.config)中,定义了一些mimeType,只有响应内容的Content Type与mimeType匹配时,IIS才会对之进行压缩。

如上图所示,我们的RSS的Content-Type是text/html; charset=utf-8,这个mimeType在IIS的默认设置中没有定义,所以没有被压缩。只需加个这个Content Type就能解决问题。

操作方法如下:

1. 在IIS中选中根节点,点击右侧的Configuration Editor

2. 在Section中选择httpCompression

3. 找到dynamicTypes,点击右侧的省略号按钮

4. 在打开的窗口中添加相应的mimeType,我们这里是text/html; charset=utf-8

 

5. 添加之后,关闭当前窗口,回到第3步中的窗口,然后点击Apply

6. 在命令行中输入iisreset命令重启IIS,使设置生效。

applicationHost.config中的对应配置如下:

复制代码
<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" />
        <add mimeType="application/xml; charset=utf-8" enabled="true" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/xaml+xml" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>
复制代码

参考:

Enabling dynamic compression (gzip, deflate) for WCF Data Feeds, OData and other custom services in IIS7

posted @   博客园团队  阅读(6521)  评论(14编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· autohue.js:让你的图片和背景融为一体,绝了!
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
点击右上角即可分享
微信分享提示