Tomcat 与 Nginx、Apache的区别是什么?

一篇我以前回答在知乎上的问题。

目录:


这里写图片描述

1/3 什么是Nginx?

Nginx是一个高性能的反向代理服务器(只能处理静态页面)。所谓反向代理服务器,也可以称为消息转发服务器。举个例子,(见上图)

  • 1/4 用户只需要知道反向代理服务器(Nginx)的IP,并向它请求资源;
  • 2/4 反向代理服务器收到请求之后,将请求转发到对应的真正提供服务的Web服务器上;
  • 3/4 这时,Web服务器只需要把资源提交给反向代理服务器;
  • 4/4 最后,由反向代理服务器将资源提交给用户。

2/3 Apache Tomcat是什么?

这里,一般被视为Apache+Tomcat。Apache类似于Nginx功能,也可以做反向代理服务器,但也可以处理动态页面。Tomcat可以脱离于Apache单独运行,但更重要的是作为Apache的扩展,用来增强Apache处理动态页面的功能(具体来说就是将Jsp翻译为Servlet)。

3/3 小结

Apache很有年头了,Nginx是后起之秀。以下是简单比较,

  • 其一,如果只需要静态消息的转发,毫无疑问Nginx是最佳的选择。它不仅具有很高的稳定性,更以其性能著称——官方表示其可以保持10,000个没有活动的连接,远大于Apache的1,000个以下,并且不惧DDoS攻击。
  • 其二,如果需要处理动态页面,那么Apache Tomcat将是不错的选择。
  • 其三,Nginx适合I/O密集型,可以处理高并发。Apache适合CPU密集型,可以快速处理请求。


©qingdujun
2018-8-20 于 北京 海淀

References:
[1] https://blog.csdn.net/DianaCody/article/details/35568221
[2] https://zh.wikipedia.org/wiki/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86
[3] https://www.zhihu.com/question/47220439
[4] http://benzsun.tk/archives/839
[5] https://www.zhihu.com/question/32212996/answer/472580921

猜你喜欢

转载自blog.csdn.net/u012339743/article/details/81876216