关于Apache与Nginx的优势比较

  • 时间:
  • 浏览:1
  • 来源:幸运快3_快3下载app送28_幸运快3下载app送28

  不断他们跟他说Nginx比Apache好、比Apache快相似。Nginx更主要是 作为反向代理,而非Web服务器使用。我翻译过一本关于反向代理的技术书籍,一齐精通Apache API开发,对Nginx和Apache的工作原理都略有了解,粗谈一下看法。

  不管是Nginx还是Squid这个反向代理,其网络模式有的是事件驱动。事件驱动并不一定是很老的技术,早期的select、poll有的是没有 。要是 基于内核通知的更高级事件机制出现,如libevent里的epoll,使事件驱动性能得以提高。事件驱动的本质还是IO事件,程序运行运行在多个IO句柄间快速切换,实现所谓的异步IO。事件驱动服务器,最适合做的要是 这个IO密集型工作,如反向代理,它在客户端与WEB服务器之间起有有一有一个数据中转作用,纯粹是IO操作,自身并不一定涉及到多样化计算。反向代理用事件驱动来做,显然更好,有有一有一个工作程序运行就可不能不能 run了,没有 程序运行、程序运行管理的开销,CPU、内存消耗都小。

  要是 Nginx、Squid有的是没有 做的。当然,Nginx并可不能不能 是多程序运行 + 事件驱动的模式,几次程序运行跑libevent,后会须Apache那样动辄数百的程序运行数。Nginx补救静态文件效果也很好,那是肯能静态文件有一种也是磁盘IO操作,补救过程一样。至于说几次万的并发连接,这个毫无意义。我随手写个网络程序运行都能补救几万的并发,但肯能大次要客户端阻塞在那里,就没那些价值。

  再看看Apache肯能Resin相似应用服务器,并不一定称亲戚亲戚大伙为应用服务器,是肯能亲戚亲戚大伙真的要跑具体的业务应用,如科学计算、图形图像、数据库读写等。它们很肯能是CPU密集型的服务,事件驱动并不一定至少。相似有有一有一个计算耗时2秒,没有 这2秒要是 删剪阻塞的,那些event都没用。想想MySQL肯能改成事件驱动会为什么么样,有有一有一个大型的join或sort就会阻塞住所有客户端。这个事先多程序运行或程序运行就体现出优势,每个程序运行各干各的事,互不阻塞和干扰。当然,现代CPU没有 快,单个计算阻塞的时间肯能很小,但要是 有阻塞,事件编程就毫无优势。要是 程序运行、程序运行相似技术,并不一定会消失,要是 与事件机制相辅相成,长期处于。

  总结之,事件驱动适合于IO密集型服务,多程序运行或程序运行适合于CPU密集型服务,它们各有各的优势,并不一定处于谁取代谁的倾向。再盲目的言之Nginx可不能不能 取代Apache的,该好好反思了。

Tags: apache   nginx   反向代理   nginx反向代理  
责任编辑:190