Apache HTTP Server 版本 2.4
描述 | 针对 Windows NT 优化的多处理模块。 |
---|---|
状态 | MPM |
模块标识符 | mpm_winnt_module |
源文件 | mpm_winnt.c |
此多处理模块 (MPM) 是 Windows NT 操作系统的默认模块。它使用单个控制进程,该进程启动单个子进程,子进程又创建线程来处理请求。
容量使用 ThreadsPerChild
指令配置,该指令设置并发客户端连接的最大数量。
默认情况下,此 MPM 使用高级 Windows API 来接受新的客户端连接。在某些配置中,第三方产品可能会干扰此实现,并在 Web 服务器日志中写入以下消息
子进程: 遇到太多 AcceptEx 错误,无法接受客户端连接。
winnt_mpm: 回退到“AcceptFilter none”。
MPM 回退到更安全的实现,但一些客户端请求未正确处理。为了避免此错误,请使用 AcceptFilter
,并使用 accept 过滤器 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
文档。)