从谁的角度看
| 对比维度 | Nginx 事件驱动,高并发反代 | Apache 模块丰富,配置灵活 |
|---|---|---|
| 架构 | ||
| 并发模型 | 事件驱动 + 少量 worker | prefork 进程 / worker 线程 / event |
| 内存占用 | 极低,万级连接 MB 级 | 较高,随连接线性增长 |
| 静态资源 | sendfile 零拷贝,极快 | 能力足够但效率略低 |
| 功能 | ||
| 动态内容 | 需转发给后端(PHP-FPM 等) | 可内嵌 mod_php 直接执行 |
| 配置方式 | 集中式配置,语法自成一派 | .htaccess + 主配置,目录级覆盖 |
| 模块扩展 | 开源版需重新编译 | DSO 动态加载,改配置即可 |
| 运维 | ||
| 反向代理/负载均衡 | 强项,配置简单 | 有 mod_proxy,但不如 Nginx 常用 |
| 典型场景 | 入口网关、静态托管、反代、HTTPS 终止 | 传统 PHP 应用、共享主机、模块定制 |
点某一行可以高亮该维度,方便逐条横向读;移动端左右滑动查看全部列。
选型建议
Nginx
新项目默认选它,尤其是要做入口、反代和高并发静态资源。
Apache
老系统依赖 .htaccess 或特定模块时保留,没必要强行迁移。
一句话结论
Nginx 在前做入口,Apache 在后跑应用,是很多存量系统的现实选择。新架构基本只用 Nginx。