tomcat 与 nginx,Apache HTTP Server的区别、联系

1、首先,如果我们想了解这三者的区别,我们需要先了解一个概念——HTTP服务器。

  HTTP服务器本质上也是一种应用程序,它通常运行在服务器之上,绑定服务器的IP地址并监听某一个TCP端口来接收并处理HTTP请求,这样客户端(一般来说是IE, Firefox,Chrome这样的浏览器)就能够通过HTTP协议来获取服务器上的网页(HTML格式)、文档(PDF格式)、音频(MP4格式)、视频(MOV格式)等资源。下图为图示过程:

在这里插入图片描述

2、三者的出身

(1)Apache HTTP Server是Apache软件基金会下的一个开放源码的网页服务器项目。
(2)Apache Tomcat则是Apache基金会下的另外一个项目,免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
(3)Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器。(当然它也可以作为邮件代理服务器、通用的TCP代理服务器)。

3、三者比较

(1)Tomcat部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
(2)与Apache HTTP Server相比,Tomcat能够动态的生成资源并返回到客户端。Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责:管理Servlet程序的生命周期将URL映射到指定的Servlet进行处理与Servlet程序合作处理HTTP请求——根据HTTP请求生成HttpServletResponse对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器虽然Tomcat也可以认为是HTTP服务器。下图为图示过程:
在这里插入图片描述

(3)但Tomcat通常仍然会和Nginx配合在一起使用:

动静态资源分离——运用Nginx的反向代理功能分发请求:所有动态资源的请求交给Tomcat,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力。

负载均衡,当业务压力增大时,可能一个Tomcat的实例不足以处理,那么这时可以启动多个Tomcat实例进行水平扩展,而Nginx的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理

(4)Apache HTTP ServerNginx都能够将某一个文本文件的内容通过HTTP协议返回到客户端,但是这个文本文件的内容是固定的——也就是说无论何时、任何人访问它得到的内容都是完全相同的,这样的资源我们称之为 静态资源
动态资源 则与之相反,在不同的时间、不同的客户端访问得到的内容是不同的,例如:包含显示当前时间的页面显示当前IP地址的页面。Apache HTTP Server和Nginx本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过Shell、PHP、Python脚本程序来动态生成内容)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值