Nginx与Apache比较

nginx

1、web服务器:

nginx比apache占用更少的内存及资源。 

2、抗并发

nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能,高度模块化的设计,编写模块相对简单 

3、Nginx作为负载均衡服务器: 

Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多. 

Apache:

    1、rewrite,比nginx的rewrite强大,

    2、模块超多,基本想到的都可以找到

    3、超稳定

区别:

1、apache是同步多进程模型,一个连接对应一个进程

2、nginx是异步的,多个连接可以对应一个进程

总结:一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,用apache。epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务比较少的话,apache 的select 模型或许比epoll 更高性能。

一般情况下我们可以结合两者使用,nginx处理静态文件,动态文件让Apache处理,这样可以大大提高网站的并发量