优化 IIS 以通过 TLS 提供静态内容

优化 IIS 以通过 TLS 提供静态内容

我正在尝试微调 IIS 10 Web 服务器,其唯一目的是提供静态文件服务。

我已经禁用会话状态,禁用托管代码,并添加了所有必要的公共缓存控制标头,且没有过期时间。

但是,如果用户通过 SSL 同时发送请求,它仍然会非常非常慢。具体情况是,浏览器一次发起所有请求(因为它是 HTTP/2),但服务器一个接一个地响应。就好像服务器无法并行处理这些请求,我不明白为什么。

我正在寻找的是 IIS 没有开始并行发送响应的原因(就像我使用 CDN 时发生的情况一样)而是显然一次发送一个响应。

以下是 IIS 发生的情况:

使用 IIS 的多个资源请求

如您所见,等待时间不断累积,最后一个请求需要 47 秒才能完成。

上次请求等待时间

但是,当我通过从 CDN 请求这些资源进行测试时,它的工作方式如下:

从 CDN 加载资源

并且所有这些都将在1秒内同时下载。

现在我知道 CDN 肯定应该具有更好的性能,我并没有试图达到那个水平,但我不明白为什么 IIS 每次只响应一个请求而不是并行响应。我相信应该可以采取一些措施来消除 TTFB 并使 IIS 能够一次响应多个请求。

相关内容