Apache WEB服务器详解

目前主流的WEB服务器软件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、Weblogic、Jetty等。

Apache服务器的特点

使用简单、速度快、性能稳定,可做负载均衡及代理服务器。

Apache三种MPM工作模式

MPM(Multi-Processing Modules)多路处理模块

在企业中最常用的处理模块为Prefork MPM和Worker MPM,Event MPM

1.Prefork MPM

默认Apache处理模块为Prefork MPM方式,Prefork采用的预派生子进程方式,Prefork用单独的子进程来处理不同的请求,进程之间彼此独立的,所以比较稳定。

工作原理:控制进程Master在最初建立“StartServers”个进程后,为了满足MinSpareServers设置的最小空闲进程,所以需创建第一个空闲进程,等待一秒钟,继续创建两个,再等一秒钟,继续创建四个,依次按照递增指数级创建进程数,最多每秒同时创建32个空闲进程,直到满足至少有MinSpareServers设置的值为止。

Apache的预派生模式(Prefork),基于预派生模式不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能,不过由于Prefork MPM引擎是基于多进程方式提供对外服务,每个进程站内存也相对较高。

一个主进程启动多个子进程,每个子进程对应一个线程。

Apache WEB服务器详解_第1张图片

2.Worker MPM

Worker支持多线程和多进程混合模型的MPM,由于使用线程来处理,所以可以处理海量的HTTP请求,系统资源的开销要小于Prefork多进程方式。

Worker也是基于多进程,但每个进程又生成多个线程,这样可以保证多线程可以获得进程的稳定性。

工作原理:控制进程Master在最初建立“StartServers”个进程,每个进程会会创建ThreadsPerChild设置的线程数,多个线程共享改进程内存空间,同时每个线程独立地处理用户的HTTP请求。为了不在请求到来时再生成线程,Worker MPM也可以设置最大最小空闲线程。

Worker MPM模式下同时处理的请求总数=进程总数*  ThreadsPerChild,即等于MaxClients。

如果服务器负载很高,当前进程数不满足需求,Master控制进程会fork新的进程,最大进程数不能超过ServerLimit数,如果需调整的StartServers进程数,需同时调整ServerLimit值。

一个主进程启动多个子进程,每个子进程对应多个线程。

Apache WEB服务器详解_第2张图片

3.Event MPM

Event MPM不支持HTTPS方式,官网也给出“This MPM is experimental,so it may or may not work as expected”提示,所以很少被使用。

Apache WEB服务器详解_第3张图片








你可能感兴趣的:(Linux运维)