Dan*_*anP 21 iis optimization iis-7 web-server yslow
我希望设置一个无 cookie 域,旨在为 Web 应用程序提供静态内容,类似于堆栈交换站点使用的http://sstatic.net/站点。
我的问题是,对于这样的域,我可以对 IIS 7.5 设置进行哪些优化?例如,除了提供静态内容之外,它永远不会负责任何事情,那么禁用 ASP.NET 集成是否是该站点的一个好举措?
非常欢迎有关使用 IIS 7.5 设置此类站点的任何建议或参考。
编辑
澄清一下,这不是服务器上唯一的站点,因此建议的优化应该针对站点级别,而不是服务器级别的配置。
Jes*_*r M 18
这有几个注意事项,一些在 IIS 上处理(HTTP 压缩、缓存头文件 fx),一些在构建过程中/部署前处理(例如 Javascript 和 CSS 文件连接和空格缩小)。
因此,在一个答案中给您一个完整的纲要有点困难,因为其中一些将取决于您的构建和发布方法。在高级步骤中:
该站点是“无cookie”的,因为您使用了一个新域,该域与您的网络应用程序无关。由于您没有为域设置任何 cookie(使用 fx .NET 应用程序代码),因此它是“无cookie”的。
您绝对 应该为静态文本内容(例如 Javascript 和 CSS)启用 HTTP 压缩。
我不是最出色的 IIS 管理员,但据我所知,您只需要与基本“Web 服务器 (IIS)”服务器角色相关联的默认 IIS 组件。
您绝对应该为静态内容启用长缓存标头。一般建议是 31 天,但您可以将其设置得更高或更低。请记住,如果您使用长缓存标头提供静态内容,则在更改文件时必须更改 URL,以避免客户端重新使用旧的缓存内容。
您应该启用 HTTP keep-alive(与缓存标头相同的文档)。
除此之外,还有部署前任务,例如压缩 Javascript 和 CSS 的空白,以及理想情况下更好地压缩 PNG等。这是您的开发工具,构建周期有助于决定如何进行。
完成后,尝试从启用 YSlow的静态服务器下载一些文件。我发现“Classic 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
Run Code Online (Sandbox Code Playgroud)