• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mpm_winnt

    描述:为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几秒钟才能完成,然后中止处理。未实现其他类型的重新启动和关闭。
    • 新的子进程读取配置文件,而不是从父进程继承配置。如果子进程是在启动或重新启动时创建的,则该行为与Unix上的行为相同,但是如果子进程是由于先前的进程崩溃或到达而创建的MaxConnectionsPerChild,则此时任何对配置的未决更改将在子进程中变为活动状态,并且父级和子级将使用其他配置。如果部分实施了计划的配置更改,并且无法解析当前配置,则替换子进程无法启动,服务器将停止。由于这种现象,在服务器重新启动之前,不应更改配置文件。
    • monitorfatal_exception钩子目前不能实现。
    • AcceptFilter在MPM中实现,并且对新连接的处理具有不同类型的控制。(AcceptFilter有关详细信息,请参阅文档。)

    上篇:mpm_prefork

    下篇:mpm_worker