设置IIS缓存策略

当网站加载缓慢或文件上传因大小限制失败时,可优化IIS(Internet Information Services)配置解决。通过设置缓存策略可提升网站响应速度,调整ASP(AspMaxRequestEntityAllowed)应用的最大请求大小限制可支持大文件上传。

适用场景

  • 提升性能:为图片、CSS、JavaScript 等不常变更的静态资源设置长期缓存,减少服务器请求,加快页面加载。

  • 支持大文件上传:调整ASP应用的请求大小限制,以满足上传视频、大型文档等业务需求。

适用范围

  • 第三方产品责任:对于文档中提及的第三方产品(如IIS),其性能、可靠性及操作影响,阿里云不做任何形式的承诺。

  • 版本兼容性:此文档的操作步骤主要基于IIS6.0。在 IIS7.0及更高版本中,部分界面、服务名称(如 Windows Activation Service)和配置文件(MetaBase.xml)可能存在差异,请根据实际环境调整。

  • ASP 请求限制:“最大请求实体主体限制”仅对ASP应用程序生效,不影响其他类型的Web应用。

安装IIS服务(可选)

  1. 在服务器桌面,依次单击开始>控制面板

  2. 将查看方式切换为小图标,然后依次单击默认程序>程序和功能

  3. 在左侧导航栏中,单击打开或关闭Windows功能

  4. Windows功能对话框中,勾选Internet Information Services

  5. 单击确定,等待系统完成安装。

配置内容缓存策略

目的:设置HTTP响应头,告知浏览器或代理服务器在指定时间内直接使用本地缓存,无需重新请求服务器。

全局禁用缓存(适用于动态内容)

此方法使整个网站的所有内容默认不被缓存,确保用户每次访问都能获取最新数据,适用于内容频繁变更的动态站点。

  1. 打开IIS管理器(在运行中输入inetmgr)。

  2. 在左侧连接树中,右键单击目标网站,选择属性

  3. 属性对话框中,切换到HTTP 选项卡。

  4. 勾选启用内容过期,并选择立即过期

  5. 单击确定保存。
    https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9168716951/p4014.png

为特定目录或文件设置缓存(推荐用于静态资源)

此方法为静态资源(如图片、CSS、JS 文件)所在的目录设置较长的缓存时间,能显著提升加载速度。

  1. IIS管理器中,展开目标网站目录树。

  2. 右键单击需设置缓存的特定目录或文件(例如 images 目录),选择属性

  3. 切换到HTTP选项卡,勾选启用内容过期

  4. 选择此时间段后过期,并设置一个较长的缓存时长,例如30天。

  5. 单击确定
    https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9168716951/p4015.png

通过通配符批量设置缓存(高级)

此方法适用于为分散在不同目录下但类型相同的文件(如所有 .jpg 文件)统一配置缓存策略。

重要

IIS6.0:不推荐直接修改MetaBase.xml文件来实现此功能,操作复杂且风险高。

  • IIS7.0及更高版本 (推荐):使用web.config文件进行配置。通过<location><staticContent>元素,可以为特定文件类型设置缓存策略,此方法更安全、灵活。

调整ASP最大请求实体主体限制

目的:此设置限制了客户端通过POST方法向ASP页面发送的数据量上限。默认值约为200KB,可能导致大文件上传失败。

通过IIS管理器界面配置(推荐)

  1. IIS管理器 中,选择目标站点。

  2. 功能视图中,双击打开ASP功能图标。

  3. ASP配置页面中,展开限制属性

  4. 修改最大请求实体主体限制的值(单位:字节)。

    • 默认值: 200,000 (约200KB)

    • 示例:若需支持50MB的文件上传,可设置为52,428,800

  5. 在右侧的操作窗格中,单击应用保存更改。

直接修改配置文件

  1. 停止IIS Admin Service服务。

  2. 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml文件,并提前备份。

  3. 在文件中搜索 AspMaxRequestEntityAllowed参数,并修改其值。

    • 默认值: 204800 (200 KB)

    • 示例:若需支持 500 MB 的文件上传,可设置为 524,288,000

  4. 保存并关闭 MetaBase.xml 文件。

重启服务使配置生效

完成配置后,必须重启对应的IIS服务,更改才能生效。

  • IIS6.0:在服务管理器中,重启IIS Admin Service。

  • IIS7.0/8.0:在服务管理器中,重启Windows Activation Service。

验证缓存策略

  1. 使用浏览器开发者工具(快捷键 F12)打开“网络 (Network)”面板。

  2. 访问网站,并选中一个已配置缓存的资源(如图片)。

  3. 在“标头 (Headers)”部分,检查“响应头 (Response Headers)”。

    • 配置成功:响应头中应包含Cache-Control: max-age=[秒数]Expires: [未来日期]字段。

    • 立即过期:响应头中应包含Cache-Control: no-cacheExpires 字段的值为一个过去的日期。

常见问题

配置修改后未生效

  • 排查点1:确认已重启正确的IIS服务。

  • 排查点2:检查是否存在配置覆盖。例如,特定目录的缓存配置会覆盖站点的全局配置。

  • 排查点3:验证时,清除浏览器缓存或在开发者工具中勾选“禁用缓存 (Disable cache)”,以确保获取到服务器的最新响应。

调整请求大小限制后上传文件依然失败

  • 排查点:检查 Web 应用程序自身是否存在文件上传大小限制。IIS 的配置仅作用于服务器层面,应用层(如 ASP.NET 的 web.config 文件中的 <httpRuntime maxRequestLength="..." />)可能需要同步修改。