Apache HTTP Server:基于进程的架构
Apache HTTP Server 默认使用 prefork 或 worker 这两种 MPM(多处理模块)。用 prefork 时,每个进来的请求都由一个专属进程处理,简单稳定,但很吃内存(每个进程要占几 MB)。用 worker(或 event)时,Apache 混用进程和线程以降低开销。配置通过 httpd.conf 文件以及各目录下的 .htaccess 完成——后者 Apache 每来一个请求就要读一次。
- 优势:有了 .htaccess,各个应用(WordPress、Laravel)不用碰主配置就能管好自己的规则。模块极其丰富(mod_php、mod_rewrite、mod_ssl、mod_security)。几乎兼容所有老牌 PHP 应用。
- 短板:并发压力极大时(同时上万条连接),内存开销会成为拖累。而且每个请求都要读一遍 .htaccess,也会增加延迟。
- 适合:多租户的共享主机(每个站点都有自己的 .htaccess)、WordPress/Magento/Drupal 这类传统应用,以及「按站点灵活配置」比「纯粹性能」更重要的场合。