所谓没有对比就没有伤害!
在nginx横空出世之前,Apache服务器一直占据web服务器的垄断地位,所以就用对比的方式来解释nginx那么强!
两者性能差别的主要原因在于网络IO模型选择不同,apache使用了select,而nginx使用了epoll模型!
举个例子:一个万人村里面选村长,有两种方式:
①,让每个人在纸条上写下自己的名字,然后前村长去收集纸条(一个线程去遍历),然后得到村长推荐候选人的名单(需要处理的连接),这就相当于select模型,去轮询每一个连接,并对需要进行处理的连接进行处理!
②,每个人都可以毛遂自荐(每个连接都有可能活跃),想要竞选的在旁边站成一排(事件触发,放入队列中),然后就在这几个人中选择(几个待处理的任务),相当于只要对少量的事件进行处理!
一个是从上万人中循环得到几个进行处理,一个是几个自己站出来直接处理,这种效率相差不是一般的大吧?
nginx是基于epoll模型开发的,而epoll是基于JAVA NIO的同步非阻塞开发,在高并发情况下能支持更多的连接!
nginx是事件驱动的,一个主进程跟多个工作进程组成的工作模式,主线程负责循环分配事件,多个工作线程负责事件的处理!
我们通常使用nginx做什么呢?
nginx作为高性能的http服务器和反向代理服务器,通常用做负载均衡组件,负责接受大量的连接然后基于一定的规则(轮询,权重等)分发连接给不同的应用服务器进行处理!
而且负载均衡配置十分简单,只需要在安装好nginx之后,通过修改配置文件nginx.conf,将不同的连接分发到不同的服务器上(通过配置server),配置十分简单!
一般来说,企业中使用nginx作为负载均衡组件的场景还是很多的,同时为了避免单点故障带来的不稳定性,通常会使用keepalive搭建高可用的集群方案!
【nginx为什么性能这么优越?】nginx搭建比较简单,大家自己可以多玩一玩!更多的技术分享,敬请关注 。。。
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 玉林、兴业、北流、容县、博白、陆川6个县市中,你更看好哪个?为什么?
- 庾澄庆为什么叫“哈林”?
- 容县有哪些景点?容县为什么不申请改为容州市呢?
- 有谁能论证五行说″为什么是五吗?
- 大葱为什么不吃叶子
- 为什么全网都在感谢中国联通?它到底做对了什么?
- 为什么UG4.0的Install Liscense Server不能安?
- 研究生是什么?为什么要考研?
- 同样吃素,为什么和尚大多数肥胖,而道士多清瘦呢?
- 专家教授都说农民是最伟大的职业,但农民却说自己是社会底层最苦最累的职业?为什么?