apache调用php的三种方式及MPM

来源:互联网 发布:创维网络电视机 编辑:程序博客网 时间:2024/06/04 17:50
自己的理解,不知道对不对

apache调用php的三种方式
1、模块方式,这种方式中web server 与模块是同时加载的

2、cgi方式,每当一个请求到来时,web server调用一次php.exe,调用结束后php进程关闭;用的是进程间通信的方式

3、fast-cgi方式,php以服务器的形式提供服务,web 服务与php同时启动,当php服务启动时,会自动产生多个可执行的字php进程,每当一个请求到来时,web服务器将请求通过tcp的通信方式转交给php服务器,此时php服务器调用一个已经准备好的进程来处理请求,处理完成后php服务器将结果返回给web服务器同时不用关闭那个php进程。这样处理的速度要比cgi模式快的多。

MPM:多路处理模块
1、prefork模型:一个进程处理一个请求
2、worker模型:一个线程处理一个请求,多进程模式,              
3、event模型:一个线程处理一个请求,多进程模式,


三者之间的区别:

prefork模型与worker模型使用的是select 与 poll方法,也就是IO复用的方法,在请求过程当中有两段阻塞
event 模型使用的是event-driven(事件驱动模型),在请求过程当中只有一段阻塞(内和缓冲区到进程缓冲区)


阻塞与非阻塞指的是在系统调用的过程中进程的状态,同步与异步指的是数据准备好时与进程交互的方式。

IO复用与事件驱动均为异步阻塞(区别是有几段阻塞),AIO是异步非阻塞。
原创粉丝点击