描述: | 为Windows NT优化的多处理模块。 |
---|---|
状态: | MPM |
模块标识符: | mpm_winnt_module |
源文件: | mpm_winnt.c |
该多处理模块(MPM)是Windows NT操作系统的默认设置。它使用单个控制进程来启动单个子进程,该子进程进而创建线程来处理请求
使用ThreadsPerChild
指令配置容量,该
指令设置并发客户端连接的最大数量。
默认情况下,该MPM使用高级Windows API来接受新的客户端连接。在某些配置中,第三方产品可能会干扰此实现,并在Web服务器日志中写入以下消息:
Child: Encountered too many AcceptEx faults accepting client connections.
winnt_mpm: falling back to 'AcceptFilter none'.
MPM可以使用更安全的实现,但是某些客户端请求未得到正确处理。为了避免此错误,请AcceptFilter
与accept filter一起
使用
none
。
AcceptFilter http none AcceptFilter https none
在Apache httpd 2.0和2.2
Win32DisableAcceptEx
中用于此目的。
WinNT MPM在某些方面与Unix MPM(例如worker和event)有所不同:
MaxConnectionsPerChild
时,退出进程中的活动请求需要
TimeOut
几秒钟才能完成,然后中止处理。未实现其他类型的重新启动和关闭。MaxConnectionsPerChild
任何未完成的配置更改都将在子进程中
变为活动状态,并且父级和子级将使用其他配置。如果已部分实施计划的配置更改,并且无法解析当前配置,则替换子进程无法启动,服务器将停止。由于这种现象,在服务器重新启动之前,不应更改配置文件。monitor
和fatal_exception
钩子目前不能实现。AcceptFilter
在MPM中实现,对新连接的处理具有不同类型的控制。(AcceptFilter
有关详细信息,请参阅文档。)