一段时间以来,我一直在为静态文件服务目的网站使用超精简的 IIS 7.5 配置。为了实现这一点,我简单地剥离了指定网站的所有动态模块,只指定了本机模块,例如StaticFileModule
、等AnonymousAuthenticationModule
。HttpCompressionModule
事实证明,这会导致工作进程的内存占用和处理开销明显下降,整体性能比默认网站好得多。
现在,作为下一步,我想看看是否可以进一步减少加载到内存中的模块数量。
我可以逐个删除模块,并尝试查看它如何影响性能和功能,但我更愿意研究各个模块实际上具有/控制的功能。
有些模块非常容易理解(例如DefaultDocumentModule
)DirectoryListingModule
,但有些则不然。
我可以在什么地方找到内置本机模块的文档?
答案1
马蒂亚斯,
您可以找到 IIS 内置的本机和托管模块的列表这里(模块参考部分)。本文档仅提供本机或实用程序模块的描述。
由于这是 IIS 的最小安装,我假设您没有安装 .NET 集成。如果这个假设正确,那么上面的链接应该就是您所需要的,因为您无需担心托管模块。
答案2
当使用 GUI 安装 IIS 时,只需选择‘静态内容’模块,您就会获得以下模块:
<globalModules>
<add name="UriCacheModule" ... />
<add name="FileCacheModule" .../>
<add name="TokenCacheModule" ... />
<add name="HttpCacheModule" ... />
<add name="ProtocolSupportModule" ... />
<add name="StaticFileModule" ... />
<add name="AnonymousAuthenticationModule" ... />
</globalModules>
你可以将其精简为两个:
<globalModules>
<add name="AnonymousAuthenticationModule" ... />
<add name="StaticFileModule" ... />
</globalModules>
但我认为缓存模块是有意义的。如果您错过了任何功能,您可以稍后添加它们。
'v2.0'
尽管不支持此功能,但DefaultAppPool 仍设置为使用 .NET Framework 。请将其更改为'No Managed Code'
。
如果您仅提供 GIF、PNG 和 JPG,也请删除所有其他 MIME 类型。