- 轻量级,同样起web 服务,比apache 占用更少的内存及资源
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单
- 社区活跃,各种高性能模块出品迅速啊
- rewrite ,比nginx 的rewrite 强大
- 模块超多,基本想到的都可以找到
- 少bug ,nginx 的bug 相对较多
- 超稳定
这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。
转自:https://www.zhihu.com/question/19571087/answer/133244938
Nginx作为 负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
2、Nginx 配置简洁, Apache 复杂 ,Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级 . Nginx 静态处理性能比 Apache 高 3倍以上 ,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端来使用 ,Apache 的组件比 Nginx 多.
3、最核心的区别在于apache是 同步多进程模型, 一个连接对应一个进程;nginx是 异步的,多个连接(万级别)可以对应一个进程 .
轻松使用Nginx搭建web服务器:链接:http://blog.csdn.net/xo_zhang/article/details/8995756 讲解搭建nginx服务器,并发请求对比。
使用Apache的ab工具进行压力测试 链接:http://blog.csdn.net/byxdaz/article/details/47442535 如何使用ab工具对apache和nginx服务器进行压力测试。
Nginx为什么比Apache Httpd高效:原理篇 链接:http://blog.csdn.net/zp17764507932/article/details/53667303 从linux 五种IO模型出发讲解多进程、多线程、IO多路复用(select、poll、epoll)处理网络并发问题,深入讲解nginx和apache的原理。
面对这些优缺点,作为客户的我们该如何取舍呢?尽管nginx正在一步步取代Apache,市场份额也在不断增加,但是做为一个网站管理员,还是需要从如下几个方面作为出发点来选择适合自身的web服务器。
第一、网站并发。如果是中小型网站,建议选用apache;如果大型并发,而且需要反向代理,选择nginx那是正确的选择。
第二、如果需要大量用到重写模块,建议选用Apache。
第三、根据熟悉程度。管理员书序Apache,但阅读和开发nginx能力有限,保守用Apache。
第四、系统资源有限,但是自身技术很强大,建议用nginx,因为nginx对系统资源暂用极小,同资源下比Apache高了差不多10倍之多。