apache如何使用worker和prefork mpm模块处理连接和请求?

我知道在Apache的prefork模块创build一个主进程和几个subprocess来处理连接,我的问题是:

每个prefork孩子每次处理一个连接还是处理一个请求 ? 如果它处理一个连接,这是否意味着每个新的连接都需要在队列中等待一个空闲subprocess来处理? 以及关于保持连接的说法?

此外,我有使用线程的工人mpm模块相同的问题?

每个prefork孩子每次处理一个连接还是处理一个请求?

每个子/线程处理一个连接(TCP连接)。

一旦连接closures,subprocess将等待另一个连接。 在一个连接上,可以发送0个,1个或多个请求(HTTP请求)。

如果客户端不发送请求,则根据您的configuration,日志中可能会有HTTP 408超时。

启用KeepAlive后,每个连接可以有多个HTTP请求,因为一旦提供了第一个请求,连接就不会closures。

在没有KeepAlive的情况下,有一个连接与一个请求,这就是为什么可能是问题。

每个新的连接需要等待队列中的一个空闲subprocess来处理?

是的,这就是为什么你要configurationApache有一些空闲的服务器/线程,所以新的连接不需要等待新的subprocess/线程创build。 如果没有足够的subprocess,将根据需要并根据configuration的限制创build新进程。

到目前为止,我自己的理解过程。