Nginx 与 Apache 2.4 MPMApache 2.4包含多路处理事件模块(MPM event module)。它能处理在异步方式下的连接类型,Niginx同样也能做,但是在方式上是不一样的。目的是在负载增长的时候,压缩对内存的需求。 在早期的版本中,Apache 2.4包含工作者(worker)和前复制叉(pre-forked)模式,除了我们之前提到那些,还包括已经被添加的mpm_event_module(Apache MPM event module),它被用来解决为了保活而等待这个连接的线程问题(等待是因为这个连接是用户额外的请求)。MPM致力于一个线程能处理套接字(sockets)中监听(listening)和保活(keep-alive)这两者的状态。这个关于地址的内存问题与旧版本的Apache相关,通过减少线程数量以及进程的创建次数。正是这一点,管理员可能要下载Apache的源代码并且包括mem_event_module,还要编译Apache,用以代替正在使用的二进制发行版。
Apache的MPM事件模型与Nginx的并不完全相同,这是因为当Apache接收到新的请求(请求的数量受到管理员所设置的限制)时,它就会产生新的进程。Nginx不会为每个用户创建多个进程。在Apache 4.2上做了如下改进:与Apache通常的工作者模式相比 ,这个版本里所创建的服务进程将会生成更少的线程。这是因为一个线程可以处理多个连接,而不是每个连接需要一个进程为其提供服务。 |