Nginx和Apache的比较
Nginx | Apache |
---|---|
基于事件的web服务器 | 基于流程的web服务器 |
一个进程处理多个连接(万级) | 一个进程对应处理一个连接 |
轻量级,同样web服务占用更少的系统资源 | |
epoll异步非阻塞,高并发高性能低消耗 | select同步多进程,高并发高消耗低性能 |
处理静态文件性能比apache高3倍以上 | |
rewrite功能更加强大 | |
设计高度模块化,编写和配置更简单 | |
模块功能更加丰富 | |
发展时间更长,更稳定,bug更少 | |
擅长处理静态请求、反向代理、负载均衡 | 擅长处理动静态请求 |
性能和可伸缩性不依赖于硬件 | 依赖CPU和内存等硬件 |
轻量高效 | 完整稳定 |
Nginx的epoll异步非阻塞模型与Apache的select同步多进程模型的比较
参数 | epoll | select |
---|---|---|
开发难度 | 中 | 低 |
连接数 | 无限制 | 一般最大是1024,否则要修改宏 |
内部处理机制 | 回调callback | 线性轮询 |
性能 | 连接数不断增加,性能基本不下滑,支持高并发 | 随着连接数的急速增加,性能迅速下滑 |
进程 | 异步网络IO,一个进程可以对应多个连接 | 同步多进程,一个进程对应一个连接 |