我正在寻找一个无Cookie的域,该域旨在为Web应用程序提供静态内容,类似于堆栈交换站点使用的http://sstatic.net/站点。
我的问题是,对于这样的域,我可以对IIS 7.5设置进行哪些优化?例如,它只负责提供静态内容,而不负责任何其他事情,因此禁用ASP.NET集成是否对该网站来说是个好办法?
欢迎使用IIS 7.5建立此类站点的任何建议或参考。
编辑
为了明确起见,这不是服务器上的唯一站点,因此建议的优化应该针对站点级别,而不是服务器级别的配置。
我正在寻找一个无Cookie的域,该域旨在为Web应用程序提供静态内容,类似于堆栈交换站点使用的http://sstatic.net/站点。
我的问题是,对于这样的域,我可以对IIS 7.5设置进行哪些优化?例如,它只负责提供静态内容,而不负责任何其他事情,因此禁用ASP.NET集成是否对该网站来说是个好办法?
欢迎使用IIS 7.5建立此类站点的任何建议或参考。
编辑
为了明确起见,这不是服务器上的唯一站点,因此建议的优化应该针对站点级别,而不是服务器级别的配置。
Answers:
在此有一些注意事项,其中一些是在IIS上处理的(HTTP压缩,缓存头fx),还有一些是在构建过程中/在部署之前处理的(例如Javascript和CSS文件串联和空格缩小)。
因此,要在一个答案中给出一个完整的总结有点困难,因为其中一些取决于您的构建和发布方法。在高级步骤中:
由于您使用的是一个新域,该站点是“无cookie的”,该域不与您的Web应用程序绑定。由于您没有为域设置任何cookie(使用fx .NET应用程序代码),因此它是“无cookie”的。
我不是最大的IIS管理员,但据我所知,您只需要与基本的“ Web服务器(IIS)”服务器角色相关联的默认IIS组件。
您应该绝对为静态内容启用长缓存头。一般建议为31天,但您可以将其设置为更高或更低。请记住,如果您提供带有长缓存头的静态内容,则在更改文件时必须更改URL,以避免客户端重新使用旧的缓存内容。
您应该启用HTTP保持活动状态(与缓存标头相同的文档)。
除此之外,还有预部署任务,例如空格压缩Javascript和CSS,理想情况下压缩PNG更好的,等等。这是您的开发工具,并且构建周期有助于决定如何进行。
完成后,请尝试从启用了YSlow的静态服务器下载一些文件。我发现“经典V2”规则集对这项工作的影响最大,因此我建议对照此YSlow规则集检查您的得分。
在“经典V2”规则集中,这些规则完全适用于您的静态服务器IIS实例和内容:
3. Add an Expires or a Cache-Control Header
4. Gzip Components
10. Minify JavaScript and CSS
11. Avoid Redirects
13. Configure ETags
19. Use Cookie-Free Domains for Components
22. Make favicon.ico Small and Cacheable
这里有一个非常有趣的文章,其中有人使用IIS提供静态文件。它主要集中在调整IIS文件缓存设置以限制磁盘活动(这是他的瓶颈)。他说,他的表现提高了20倍。