Nginx相对于Apache的优点
- 轻量级
同样起web服务,比Apache
占用的内存和资源少
- 抗并发
Nginx
处理请求是异步非阻塞
,多个链接请求可以对应一个进程。
apache
处理请求是阻塞型的,是同步多进程型,并且一个链接请求对应一个进程
在高并发下nginx 能保持低资源低消耗高性能
nginx处理静态文件和反向代理好
,Nginx 静态处理性能比 Apache 高3倍以上
apache相对于Nginx的优点
apache 的
rewrite 比nginx 的rewrite 强大
,模块非常多
,基本想到的都可以找到 ,比较稳定,少bug ,nginx 的bug 相对较多 .处理动态文件
比Nginx优秀。
nginx 比Apache处理并发能力强的原因
这得益于Nginx使用了最新的
epoll(Linux 2.6内核)
和kqueue(freebsd)
网络I/O模型,而Apache则使用的是传统的select模型
。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型
。 处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
tip
: 通俗的讲,select机制是对没有处理好的I/O请求在一段时间内进行 检测,并将其状态通知给用户,即有没有完成都会通知。而epool机制则是在该I/O请求完成后才通知给用户。