前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文看懂 Tomcat、Nginx 和 Apache 的区别

一文看懂 Tomcat、Nginx 和 Apache 的区别

作者头像
迷路的朱朱
发布2023-05-21 09:54:57
5680
发布2023-05-21 09:54:57
举报

【Tomcat、Nginx 和 Apache 的区别】

  • 这三者都是 web server,各自有什么特点?
  • 他们之间的区别是什么?
  • nginx 和 tomcat 性能上有何异同?
  • tomcat 用在 Java 后台程序,难道不能用 apache 和 nginx?

Apache 其实是 Apache HTTP Server Project,和 Nginx 一样都是开源的 HTTP 服务器 软件。

HTTP 服务器本质上也是一种应用程序——它通常运行在服务器上,绑定服务器的 IP 地址并监听某个 TCP 端口,接收并处理 HTTP 请求,这样客户端(如 Chrome 这样的浏览器)就能通过 HTTP 协议获取服务器上的网页(HTML格式)、文档(PDF格式)等资源。

d718e61e8e5793c27d3b82ecdc711798.webp
d718e61e8e5793c27d3b82ecdc711798.webp

强大的 Java 类库也实现了简单的 HTTP 服务器供开发者使用:

  • HttpServer (Java HTTP Server )

使用这种类库能很容易的运行一个 HTTP 服务器,它们都能通过绑定 IP 地址并监听 TCP 端口来提供 HTTP 服务。

相比于 Apache HTTP Server,Tomcat 能动态生成资源并返回给 Client。Apache HTTP Server 和 Nginx 都能将某一文本文件内容通过 HTTP 协议返回到客户端,但该文本文件的内容固定——无论何时、任何人访问它得到的内容都完全相同,即静态资源。

动态资源则在不同时间、客户端访问得到的内容不同。

Apache HTTP Server 和 Nginx 本身不支持生成动态页面,但可以通过其他模块来支持(例如通过 Shell、PHP、Py 脚本动态生成内容)。若想要使用 Java 程序动态生成资源内容,使用这类 HTTP 服务器就很难。Java Servlet 及 JSP 可以让 Java 程序也能处理 HTTP 请求并且返回内容(由程序动态控制)的能力,Tomcat 正是支持运行Servlet/JSP 应用程序的容器(Container):

a82543465b0c81033f6a00cfbe19c010.webp
a82543465b0c81033f6a00cfbe19c010.webp

Tomcat 运行在 JVM 之上,和 HTTP 服务器一样,绑定 IP 地址并监听 TCP 端口,而且:

  • 管理 Servlet 程序的生命周期
  • 将 URL 映射到指定 Servlet 进行处理
  • 与 Servlet 程序合作处理 HTTP 请求
  • 根据 HTTP 请求生成 HttpServletRequest 对象并传递给 Servlet 进行处理,将 Servlet 中的 HttpServletResponse 对象生成的内容返回给浏览器

虽然 Tomcat 也可认为是 HTTP 服务器,但通常它仍和 Nginx 协作:

  • 动静态资源分离 使用 Nginx 的反向代理分发请求:所有动态资源的请求交给 Tomcat,静态资源的请求(例如图片、CSS、JS文件等)直接由 Nginx 返回给浏览器
  • 负载均衡 当业务压力增大时,可能一个 Tomcat 的实例不足以处理,可启动多个 Tomcat 实例进行水平扩展,Nginx 负责负载均衡,将请求分发到各个不同的实例进行处理
  • 分发到各个不同的实例进行处理
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【Tomcat、Nginx 和 Apache 的区别】
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档