Nginx与Apache的比较
Nginx与Apache的比较
-
Nginx相对于Apache的优点
- 轻量级。同样起web服务,比apache占用更少的资源和内存
- 抗并发。nginx处理请求是异步非阻塞,而apache则是阻塞型。在高并发下,nginx能保持低资源、低消耗、高性能。
- 高度模块化设计,编写模块相对简单。
- 社区活跃,各种高性能模块出品迅速
- 代理功能强大
-
Apache相对于Nginx的优点
- 比nginx的rewrite(服务器的重写脉冲技术,支持URL重写)强大
- 模块超多,几乎想要的模块都可以找到
- 比nginx的bug相对比较少,比较稳定
-
Nginx与Apache各有用武之地
-
apache适合跑动态,而nginx适合跑静态和反向,但若静态文件寥寥无几,apache的select模块比nginx的epoll模块可能更好一些。
-
nginx适合于IO密集型服务,apache适合于CPU密集型服务
-
最好是两者结合,例如,lanmp架构,nginx做前端服务器,处理静态文件请求,apache做后端服务器,当客户发出动态文件的请求时,nginx的反向代理功能将请求转发给apache。
-
-
形象化举例
餐厅点餐。
- apache,专人服务,服务到底
- nginx,分阶进行,节省时间
-
补充
轻量级、高并发的原因:
- 对于apache,每个请求独占一个工作线程,并发数几千,线程几千,占用内存、cpu,降低性能。
- 对于nginx,一个进程只有一个主线程,通过异步非阻塞事件处理机制,实现了循环处理多个准备好的事件,从而实现轻量级、高并发
勿忘初心,放得始终