第七十八章 IIS 技术说明
第七十八章 IIS 技术说明
对于那些有兴趣使用 IIS 的人,此页面介绍了应用程序池、网络花园和位数。
IIS 应用程序池和Web Gardens
应用程序池
应用程序池是一种将一个或多个应用程序链接到一组一个或多个工作进程的配置。由于应用程序池中的应用程序通过工作进程边界与其他应用程序分开,因此一个应用程序池中的应用程序不会受到其他应用程序池中运行的应用程序引起的问题的影响。
通过创建新的应用程序池并向其分配网站和应用程序,可以使服务器更加高效和可靠。通过池工作的应用程序始终可用,即使服务于不同应用程序的工作进程出现故障也是如此。
应用程序由它们在 IIS
中的路径定义。例如:/csp
Web Gardens
为了获得更高的可靠性,可以将应用程序池配置为由多个工作进程支持。使用多个工作进程的应用程序池称为网络花园。网络园中的工作进程共享到达该特定应用程序池的请求。如果一个工作进程失败,另一个工作进程可以继续处理其他请求。
应该指出的是,网络花园与网络农场不同。通过为应用程序池指定多个工作进程,可以在单个服务器上配置网络花园。网络场使用多个服务器来支持网站。
为应用程序池创建网络园可以在以下情况下提高性能:
- 稳健的请求处理:当应用程序池中的工作进程被占用时(例如,当脚本引擎停止响应时),其他工作进程可以接受和处理应用程序池的请求。
- 减少资源争用:当网络园区达到稳定状态时,根据轮询方案,将每个新的
TCP/IP
连接分配给网络园区中的工作进程。这有助于消除工作负载并减少对绑定到工作进程的资源的争用。
应用程序池、Web
花园和CSP
应用程序池和网络花园配置不会影响基于NSD
的网关配置的操作,因为与NSD
通信的ISAPI
模块不会汇集任何持久信息或其他资源(例如到系统间IRIS的连接)。所有持久资源都保存在NSD
模块中。与NSD
通信的ISAPI
模块不受IIS
管理方式更改的影响。
非基于NSD
的网关配置(CSPms.dll
和CSPmsSys.dll
)对IIS
中管理ISAPI
扩展的方式的更改更加敏感,因为持久资源(如到IRIS
的连接)的池化发生在扩展本身中。
配置为使用不超过一个工作进程的应用程序池对Web
网关在单个Web
应用程序路径(例如,/csp
)上下文中的操作方式没有明显的影响。然而,对于使用多个工作进程的配置(Web Garden
), Web
网关的工作负载在池中所有参与的工作进程之间均匀分布。每个工作进程管理自己的Web网关模块实例。这种进程管理架构不会对Web
网关的操作方式造成问题,但必须牢记以下限制:
- 必须重新启动
IIS
才能使Web
网关配置的更改生效。这必须通过从主Windows
服务控制面板完全重新启动万维网发布服务来完成;不是通过Internet
服务管理器控制面板。 -
Web
网关的系统管理表单(系统状态)无法用于准确监控Web
应用程序使用的连接。在任何给定时间,系统状态都会反映恰好附加到当前工作进程(即恰好为Web
网关的请求提供服务的工作进程)的Web Gateway
实例的状态。 - 每个
Web
应用程序(由应用程序的 `` 路径定义)维护自己的与持久连接池。此外,应用程序池中的每个工作进程都维护自己的与持久连接池。配置Web
网关使用 连接的最大和最小数量时,应记住此配置。这些设置适用于池中的每个网关实例。 - 状态感知会话(保留模式
1
)不能与Web Garden
配置一起使用,因为无法控制用于服务任何特定请求的Web Gateway
实例。最终结果是无法将状态感知请求路由到这些配置中的专用进程。
请注意,基于 NSD
的选项不受这些限制,因为 Web
网关是独立于 IIS
进行管理的。
最后,应考虑某些工作进程配置参数对非 NSD
版本的 Web Gateway
的影响。特别是,应牢记空闲超时和进程回收设施的影响。