好几年没接触过apache了,相反nginx倒是在工作中应用场景比比皆是!

大概四五年前apache+tomcat都还是web服务端的主流架构,apache跟tomcat这种应用伺服器能良好结合,但是nginx出现之后,apache就大势已去了,因为"老毛子"写的nginx轻量级,高性能,超稳定风靡全球,几乎成了伺服器后端的必备伺服器了!

现对比下apache和nginx的特点,就能知道它们的性能差异!

使用模型:apache使用的是同步多线程模式,对每一个连接都必须有一个线程来保持连接,而nginx使用epoll模型,采用非同步非阻塞模式,使用一个master进程用来接收所有连接,当有请求的时候,分配worker进程来处理请求,避免了大量创建和CPU切换线程的开销,单台apache架构只能维持最多几千的连接,而nginx能支持几万的并发量!

nginx优点:轻量级,支持并发量高,作为反向代理伺服器能支持多种负载均衡方式,配置简单等!

apache优点:稳定。

现在大型的服务系统中,很依赖于nginx的使用,使用nginx集群能应付大量并发所带来的性能瓶颈,并通过负载均衡将请求分发到应用伺服器上。

不仅如此,随著应用系统前后端分离技术的发展,使用nginx的反向代理可轻松解决前后端带来的跨域访问问题!

所以掌握nginx的安装,配置,维护是后端开发不可或缺的能力,关于JAVA相关的技术,后期会有很多分享,敬请关注。。


具体不多说什么了,nginx快有他的道理,但是反过来他也牺牲一些特性。又快又好的东西是不存在的,除非革命性的变化,


apache 在2.4 版以前,网路方面性能远不如 nginx ,到了 2.4 学了 nginx 重做了网路方面的代码,才拉进了性能差距。


推荐阅读:
相关文章