前言
-
httpd
- 20世纪90年代初, 国家超级计算机应用中心NCSA开发
- 1995年开源社区发布apache(a patchy server)
- ASF: apache software foundation
- FSF: Free Software Foundation 特性:
- 高度模块化: core + modules
- DSO: Dynamic Shared Object 动态加/卸载
- MPM: multi-processing module多路处理模块
MPM工作模式
-
prefork:多进程I/O模型,每个进程响应一个请求,默认模型
- 一个主进程:生成和回收n个子进程, 创建套接字,不响应请求多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个
-
worker:复用的多进程I/O模型,多进程多线程, IIS使用此模型
- 一个主进程: 生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求: m*n
-
event:事件驱动模型(worker模型的变种)
- 一个主进程:生成m个子进程,每个进程直接响应n个请求,并发响应请求: m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时, 将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力 httpd-2.2: event 测试版,centos6默认httpd-2.4: event 稳定版, centos7默认
prefork模型性能还是可以的,一般应用场景足够,而且后面搭建LAMP时要使用这个模型,其他的不是太