nginx和apache最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

时间:2023-11-10 21:56:32

nginx和apache的一些优缺点比较,摘自网络,加自己的一些整理。

nginx相对于apache的优点: 
1.轻量级,同样是web 服务,比apache 占用更少的内存及资源 
2.抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 
3.高度模块化的设计,编写模块相对简单 
4.社区活跃,各种高性能模块出品迅速

5.Nginx 静态处理性能比 Apache 高 3倍以上

6.Nginx本身就是一个反向代理服务器

7.Nginx支持7层负载均衡;

apache 相对于nginx 的优点: 
1.rewrite ,比nginx 的rewrite 强大

2.对动态页面的支持比较好, 
3.模块超多,基本想到的都可以找到 
4.少bug ,nginx 的bug 相对较多

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。
当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。