我正在寻找一个无 cookie 的域名,用于为 Web 应用程序提供静态内容,类似于http://sstatic.net/堆栈交换站点使用的站点。
我的问题是,我可以对此类域的 IIS 7.5 设置进行哪些优化?例如,它除了提供静态内容外,永远不会负责任何其他工作,那么禁用 ASP.NET 集成对这个网站来说是一个好举措吗?
非常欢迎有关使用 IIS 7.5 建立此类站点的任何建议或参考。
编辑
需要澄清的是,这不是服务器上唯一的站点,因此建议的优化应该针对站点级别,而不是服务器级别的配置。
答案1
其中有几个考虑因素,一些是在 IIS 上处理的(HTTP 压缩、缓存标头 fx),一些是在构建过程中/部署之前处理的(例如 Javascript 和 CSS 文件连接和空格最小化)。
因此,很难在一个答案中为您提供完整的概述,因为其中一些将取决于您的构建和发布方法。在高级步骤中:
由于您使用了一个新域名(该域名与您的 Web 应用程序无关),因此该网站是“无 Cookie”的。由于您没有为该域名设置任何 Cookie(使用 fx .NET 应用程序代码),因此该网站是“无 Cookie”的。
你应该绝对地 对静态文本内容启用 HTTP 压缩例如 Javascript 和 CSS。
我不是最优秀的 IIS 管理员,但据我所知,你只需要与基本“Web 服务器 (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
答案2
有这里有一篇非常有趣的文章有人使用 IIS 来提供静态文件。主要集中在调整 IIS 文件缓存设置以限制磁盘活动(这是他的瓶颈)。他说他看到性能提高了 20 倍。