首页 > 代码库 > apache 工作模式

apache 工作模式

为什么会有工作模式?

更高效率的支持不同的平台;能更好的为有特殊要求的站点定制。

例如,要求 更高伸缩性的站点可以选择使用线程的 MPM,即 workerevent; 需要可靠性或者与旧软件兼容的站点可以使用 prefork

有几种工作模式?

perfork 进程方式处理每个请求
预派生、适合于没有线程安全库,需要避免线程兼容性问题的系统。适于每个请求相互独立的情况。
worker 多线程多进程来进行处理请求
多线程:处理海量请求,系统资源的开销小;多进程:稳定性
每个进程可以拥有的线程数量是固定的。服务器会根据负载情况增加或减少进程数量。一个单独的控制进程(父进程)负责子进程的建立。每个子进程可以建立ThreadsPerChild数量的服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。
event 把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限制,此时Event MPM方式是最有效的。
NetWare NetWare
OS/2 OS/2
WinNT Windows

 

构建mpm静态模块:./configure  --with-mpm=prefork

查看工作模式 httpd –l 、apachectl -l
[root@centos1 bin]#Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  worker.c     # worker的工作模式

apache 工作模式