首页 > 技术文章 > Nginx与Apache的比较

cherishry 2016-07-30 16:48 原文

Nginx与Apache的比较

  1. Nginx相对于Apache的优点

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

    • 比nginx的rewrite(服务器的重写脉冲技术,支持URL重写)强大
    • 模块超多,几乎想要的模块都可以找到
    • 比nginx的bug相对比较少,比较稳定
  3. Nginx与Apache各有用武之地

    • apache适合跑动态,而nginx适合跑静态和反向,但若静态文件寥寥无几,apache的select模块比nginx的epoll模块可能更好一些。

    • nginx适合于IO密集型服务,apache适合于CPU密集型服务

    • 最好是两者结合,例如,lanmp架构,nginx做前端服务器,处理静态文件请求,apache做后端服务器,当客户发出动态文件的请求时,nginx的反向代理功能将请求转发给apache。

  4. 形象化举例

    餐厅点餐。

    • apache,专人服务,服务到底
    • nginx,分阶进行,节省时间
  5. 补充

    轻量级、高并发的原因:

    • 对于apache,每个请求独占一个工作线程,并发数几千,线程几千,占用内存、cpu,降低性能。
    • 对于nginx,一个进程只有一个主线程,通过异步非阻塞事件处理机制,实现了循环处理多个准备好的事件,从而实现轻量级、高并发

推荐阅读