Nginx 优点:跨平台(可以在Linux、Unix、Windows 使用,配置简单),高并发连接(能支撑2-3万并发连接),高度模块化,成本低廉(可实现负载均衡,可免费使用),内置健康检查(如果某台服务器宕机不影响前端访问),节省带宽(有缓存模块,支持gzip),稳定性高。
Apache优点:稳定,对PHP等语言支持很好适合处理动态请求。
Nginx基于epoll事务处理机制;异步非阻塞
对于Nginx来说,把一个完整的连接请求处理都划分成了事件,一个一个的事件。每个事件对应相应的模块去处理只有核心模块调度才占用CPU资源,异步这里指的就是做一个事情,不需要等返回结果,做好了会自动通知你。
Apache 基于select事务处理机制;多进程多线程
apache会先生成几个进程,类似进程池的工作原理,只不过这里的进程池会随着请求数目的增加而增加。对于每一个连接,apache都是在一个进程内处理完毕。处理的过程进程都是阻塞的,处理完毕才能进行下一个进程,如果进程多了CPU切换繁忙,耗费时间资源,有些请求模块就可以处理,却都要占用CPU。