nginx相对于apache的优点

__轻量级:__作为web 服务,比apache 占用更少的内存及资源

__并发:__nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能,能比apache支持更多的并发。

__模块化的设计:__Nginx编写模块相对简单 社区活跃,各种高性能模块发展迅速

__静态文件处理:__Nginx 静态处理性能比 Apache 高 3倍以上

__负载能力:__Nginx的负载比apache高很多,Nginx支持7层负载均衡

__其它:__Nginx本身就是一个反向代理服务器 __缺点:__Nginx 仅能支 持http、https 和 Email 协议

apache 相对于nginx 的优点

rewrite: 比nginx 的rewrite 强大

__模块:__比nginx多很多实用的模块,毕竟发展了很多年了。

__动态请求处理:__nginx这块比较弱,apache动态请求处理非常好

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

应用

一般来说,需要性能的web服务,使用Nginx。如果不需要性能,唯一要求就是稳定,使用apache更褐色。要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。

作为 Web 服务器,相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。在高连接并发的情况下,Nginx是Apache服务器不错的替代品,官方测试 能够支持高达 5w 个并发连接数的响应,实际上应该可以达到2-3w个并发连接数。

大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持连接等等。

在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。

总结:apache2.4以后友好程度等还是有优势的,但是扛并发上肯定不如nginx,所以前端采用nginx做负载均衡,后端采用PHP处理比较合适,具体看应用的情况,要稳定还是高性能,扛并发。如果只有一台服务器,可能选nginx比较合适。