65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 IIS 的十件事

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.68/5 (26投票s)

2002年10月11日

7分钟阅读

viewsIcon

260330

使用 IIS 的十个非常有用的技巧。

引言

作为一名 IIS 管理员,有时不得不忍受我遇到的 Apache 管理员的各种嘲讽,他们声称自己的服务器在本质上就更优越。通常,关于 Web 管理的讨论首先会涉及 IIS 存在的各种安全漏洞以及该平台在过去一年中获得的负面评价。然后,不可避免地会转向讨论 Netcraft 和其他统计网站如何显示 Apache 是 Web 上占主导地位的服务器,或者某个大型网站使用 Apache,或者 Apache 有多少很酷的模块可以添加。指出大量未识别的企业内部服务器运行 IIS,或者 IIS 也是免费服务器(因为它随操作系统一起提供),或者实际上有很多很酷的 IIS 附加组件(包括许多提供源代码的)——所有这些都不能动摇这些服务器沙文主义者的观点。然而,与其抱怨粗鲁的 Apache 管理员,不如写下一些我发现的改进 IIS 的方法,这似乎是一种更有用的回应。因此,废话不多说,这里是我充分利用 IIS 的十大技巧。

技巧 10:自定义错误页面

虽然这很容易做到,但似乎很少有人利用它。只需在 MMC 中选择“自定义错误”选项卡,然后将每个错误(例如 404)映射到相应的 HTML 或 ASP 模板。详细信息可以在此处找到。如果您想要更简单的解决方案——或者如果您想让开发人员处理映射而不让他们访问 MMC——可以使用 CustomError 等产品。

技巧 9:深入 MetaBase

如果您认为 Apache 强大是因为它有一个配置文件,那么请看看 MetaBase。通过编辑 MetaBase,您可以对 IIS 进行几乎任何操作。例如,您可以创建虚拟目录和服务器;停止、启动和暂停网站;以及创建、删除、启用和禁用应用程序。

Microsoft 提供了一个名为 MetaEdit 的图形用户界面实用程序,类似于 RegEdit,用于帮助您读取和写入 MetaBase。在此处下载最新版本。但是,要真正给那些 UNIX 管理员留下深刻印象——并通过学习如何以编程方式操作 MetaBase 来充分利用 MetaBase——您将需要尝试命令行界面,它正式称为 IIS 管理脚本实用程序。它的简称是 adsutil.vbs,您可以在 C:\inetpub\adminscripts 或 %SystemRoot%\system32\inetsrv\adminsamples 中找到它,以及许多其他有用的管理脚本。

不过,有一点要提醒:就像 Apache 配置文件一样,MetaBase 对于 Web 服务器的正常运行至关重要,所以不要搞砸了。请先备份。

技巧 8:为您的 URL 添加拼写检查

Apache 用户总是夸耀 Apache 能够完成的那些很酷的小技巧——尤其是因为它有丰富的模块可以扩展服务器的基本功能。其中最酷的一个是使用名为 mod_speling 的模块修复 URL 拼写错误的能力。现在,得益于 Port80 Software 的工作人员,IIS 管理员也可以通过使用一个名为 URLSpellCheck 的 ISAPI 过滤器来完成这个技巧。您可以在他们的网站上查看,尝试输入类似 www.urlspellcheck.com/fak.htm、www.urlspellcheck.com/faq1.htm——或您能想到的任何其他简单的拼写错误。

技巧 7:重写您的 URL

清理您的 URL 有各种好处——它可以提高您网站的安全性,缓解迁移的麻烦,并为您的 Web 应用程序提供额外的抽象层。例如,如果您可以将 URL 重新映射,那么从 ColdFusion 迁移到 ASP 网站就不是什么大问题。Apache 用户长期以来一直吹嘘 mod_rewrite 的强大功能——这是标准的 Apache URL 重写模块。现在,IIS 上有数十种此类产品,其中许多比 mod_rewrite 更容易使用,后者倾向于假定您熟悉正则表达式的奥秘。例如,可以查看 IIS ReWrite 或 ISAPI ReWrite。所以,Apache 的支持者们,别再吹嘘了。

技巧 6:添加浏览器检测

有很多方法可以构建网站,但假设每个人都有特定的浏览器或屏幕尺寸是完全愚蠢的。简单的 JavaScript 嗅探脚本存在于客户端浏览器检测中,但如果您是 IIS 用户,您可以使用 CyScape 的 BrowserHawk 产品做得更好。Apache 世界并没有什么能与之媲美,这款产品很受欢迎、成熟且支持良好。说到 CyScape,他们最近又推出了一款看起来很有趣的相关产品 CountryHawk,可以帮助进行地理位置检测,但到目前为止,我还没有足够的内容来证明尝试它的必要性。

技巧 5:Gzip 网站内容

浏览器可以处理 Gzip 和压缩的内容,并在传输过程中解压。虽然 IIS 5 内置了 gzip 功能,但它基本上是坏的。这时就需要 Pipeboost 这样的产品来提供更好的功能——类似于 Apache 用户通过 mod_gzip 获得的功能。不要浪费您的带宽——即使是 Google 也会对其内容进行编码,而他们的页面非常小。

技巧 4:缓存您的内容

在谈论提高性能时,请记住让您的网站对缓存友好。您可以直接从 MMC 为不同的文件或目录设置过期标头。只需通过 IIS MMC 右键单击一个项目,切换到“HTTP Headers”选项卡,即可完成。如果您想以编程方式设置缓存控制标头——或者更好的是,让您的网站开发人员来设置——可以使用 CacheRight 等产品。如果您想更进一步,添加反向代理缓存,特别是对于生成的内容,可以使用 XCache 等产品——它还可以提供压缩功能。

充分利用缓存可能需要更多的时间和费用,但当您看到日志中的 304 响应减少,带宽消耗急剧下降,而在同一时期页面浏览量却增加时,您就会开始理解为什么这个技巧如此重要。缓存友好的网站非常罕见,但网上有很多关于正确进行缓存的巨大好处的信息:查看 Brian Davidson 的页面、Mark Nottingham 的这个精美教程,以及 AOL 对此的看法。

技巧 3:调优您的服务器

调优 IIS 不是一个小话题——有专门的书籍和课程。但网上有一些很好的基础帮助,例如 IIS 专家 Brett Hill 的这篇文章,或者 Microsoft 本身的一篇知识库文章。但是,如果您不想弄脏自己的双手——或者无法负担成为专家的时间和费用——可以看看 XCache 的开发者提供的 XTune。它的性能调优向导会引导您完成调优 IIS 环境的过程,并在此过程中提供专家建议。

技巧 2:通过简单的修复来保护您的服务器

当然,人们会攻击网站,但如果您愿意付出一点努力,就不必成为待宰的羔羊。首先,不要通过显示您的 HTTP 服务器头来宣传您正在运行 IIS。使用 ServerMask 等产品将其删除或替换——这可能是您花过的最值的 25 美元。您可以通过删除不必要的文件扩展名来进一步隐藏您的服务器环境,并扫描请求 URL 以查找漏洞迹象。有许多商业产品可以扫描用户输入,Microsoft 提供了一个名为 URLScan 的免费工具,它可以胜任这项工作。URLScan 与 IISLockDown 结合使用,IISLockDown 是一个标准的安全性包,可能应该安装在地球上的每个 IIS 服务器上。这些都是可以带来巨大回报的简单修复,所以现在就去做吧。

技巧 1:修补,修补,修补!

好吧,我们 IIS 世界确实需要修补我们的系统并应用热修复程序。然而,作为一名曾经的 Solaris 管理员,我在那里也必须做同样的事情,所以我不太明白为什么这会令人惊讶。您确实需要跟上补丁的更新,Microsoft 当然是权威来源,但您也可以使用备受推崇的 www.cert.org。只需搜索“IIS”即可。

结论

好了,这就是 IIS 管理员可以用来改进其服务器的 10 个技巧。其中一些技巧可能会随着 IIS 6 的正式发布而变得过时,但至少目前,W2K 和 NT IIS 管理员应该今天就应用其中一些技巧,以便晚上睡得更安稳。

Matt Foley 是一名曾是 Solaris 系统管理员,后来转向“黑暗面”,现在为一家位于南加州的大型托管和 Web 机构工作。尽管他自己不愿意,但他现在相当喜欢 Windows。

© . All rights reserved.