Web服务器与应用服务器有什么区别?选择哪个?

2021年11月27日16:20:17 发表评论 914 次浏览

Web 和应用服务器都响应用户对内容的请求。然而,这两种服务器类型之间存在几个主要区别,了解这些区别可以帮助你根据需要配置正确的软件和硬件基础架构。

Web服务器与应用服务器有什么区别?继续阅读以了解 Web 服务器和应用服务器之间的区别 及其日常用例, 并查看哪一种 更适合你的业务需求。

Web服务器与应用服务器差异比较

Web服务器与应用服务器选择哪个好?以下概述了应用和 Web 服务器之间的主要区别:

网络服务器比较点应用服务器
托管网站并响应简单的网络请求主要目的托管应用并通过业务逻辑提供复杂的交互
仅通过 HTML 提供静态内容内容类型提供静态和动态内容
仅限 HTTP/HTTPS 协议协议客户端-服务器交互可以通过多种协议进行,包括 HTTP/HTTPS
应用连接是的
可以访问静态数据库数据库连接可以访问应用数据库
网络浏览器典型客户为 Web 和移动应用以及 Web 浏览器提供服务
不支持多线程多线程使用多线程并行处理多个请求
促进不消耗大量资源的流量资源消耗促进资源密集型流程
仅限 Web 容器容器Web 容器(Servlets、JSP、JSF、Web 服务)、EJB 容器(JTA)、应用客户端容器(DI、安全)
非常低容量高的
在浏览器上显示信息的超文本文档互动结果包含数据并根据客户需求服务于特定目的的文件

什么是 Web 服务器?

Web 服务器是一种计算机系统,用于存储、处理网页并将其传送给客户端。客户端几乎总是一个网络浏览器或一个移动应用。根据设置,网络服务器可以存储一个或多个网站。

此类服务器仅提供静态 HTML 内容,例如:

  • 文件
  • 图片
  • 影片
  • 字体

Web 服务器和应用服务器有一个共同点——它们需要一个专用服务器来运行软件。

传统上,Web 服务器不处理动态内容或服务器端编程。Web 服务器仅接受和满足超文本传输​​协议(HTTP 或 HTTPS)请求。或者,你可以添加用于处理动态内容的组件。

Web服务器与应用服务器有什么区别?选择哪个?
Web服务器与应用服务器选择哪个好

什么是应用服务器?

Web服务器与应用服务器有什么区别?应用服务器是为客户端应用提供内容和资产的软件框架。客户端包括基于 Web 的应用、浏览器和移动应用。

应用服务器为客户端提供对业务逻辑的访问。通过业务逻辑,应用服务器将数据转换为动态内容并启用应用的功能。动态内容的例子是:

  • 一个交易结果
  • 决策支持
  • 实时分析

这种服务器类型是客户端和服务器端代码之间的主要链接。应用服务器的典型任务包括:

  • 交易管理
  • 安全
  • 依赖注入 (DI)
  • 并发

应用服务器还处理诸如集群、故障转移和 负载平衡之类的过程。

Web服务器与应用服务器有什么区别?选择哪个?
Web服务器与应用服务器选择哪个好

Web 和应用服务器之间的重叠

Web服务器与应用服务器差异比较:当 Web 浏览器成为主要的应用客户端时,应用和 Web 服务器之间的界限变得模糊。

大多数 Web 服务器都有支持动态内容生成的脚本语言(ASP、JSP、PHP、Perl 等)插件。例如,如果我们将 .NET 插件添加到 IIS 环境中,我们可以将 Web 服务器连接到服务器端代码并​​为客户端提供动态内容。

应用服务器端也有重叠。许多应用服务器提供 Web 服务器功能并使用 HTTP 作为主要协议。

由于用例和技术的重叠,最流行的服务器是这两种类型的混合。结合服务器功能的混合解决方案可确保最佳系统速度和功能。

对于托管静态网站的廉价方式,请考虑使用Object Storage。

最受欢迎的网络服务器

以下是最流行的 Web 服务器的概述:

nginx

Nginx 是一个开源 Web 服务器,它也可以充当 反向代理、电子邮件代理和负载均衡器。Nginx 是事件驱动的,高度可扩展的,可以同时处理多个请求。

要开始使用 Nginx,请参阅我们的指南 如何在 Ubuntu 20.04 上安装 Nginx 或 如何在 CentOS 8 上安装 Nginx。

Apache HTTP 服务器

所述 的Apache HTTP服务器 (也称为仅作为阿帕奇)是一个免费的,开源网络服务器。Apache 是LAMP 堆栈的一部分 ,该软件堆栈为 Internet 上大约 40% 的网站提供支持。

Apache 提供了丰富的功能选择,包括 htaccess、IPv、FTP、HTTP/2、带宽限制和负载平衡。

要深入比较 Nginx 和 Apache,请阅读我们的文章Nginx 与 Apache。

Microsoft IIS

Microsoft IIS(Internet 信息服务)是 Windows Server 的免费 Web 服务器软件包。IIS 仅在 Windows 操作系统上运行。

Jetty

Jetty 是一个开源项目,提供了 HTTP 服务器、HTTP 客户端和 javax.servlet 容器。虽然主要是一个 Web 服务器,但 Jetty 还可以促进机器对机器的通信。

LiteSpeed

LiteSpeed 是一个具有卓越性能和可扩展性的网络服务器。LiteSpeed 提供广泛的功能,并具有易于使用的网络管理控制台。

最受欢迎的应用服务器

以下是市场上应用最广泛的应用服务器:

Apache Tomcat

Apache Tomcat 是一个开源应用服务器,通常与 Apache HTTPD 结合使用。

Tomcat 可以执行 Java Servlet,使用 JavaServer Page 代码交付页面,并为 Java EE(Java 企业版)应用提供服务。

如果你不熟悉 Tomcat,请访问我们的教程 如何在 Ubuntu 上安装 Tomcat 或 如何在 CentOS 上安装 Tomcat。

Oracle WebLogic Server

Oracle WebLogic Server 是一个应用服务器,用于  使用 Java EE 标准部署分布式应用。WebLogic 与 Oracle 的产品和云服务组合完全集成。

Glassfish

Glassfish 是一个开源 Java EE 应用服务器,支持 Java Servlets 和 Enterprise JavaBeans (EJB)。Glassfish 还可以用作 Web 服务器。

JBoss

JBoss 应用服务器是一个开源平台,用于构建、部署和托管 Java 应用。JBoss 跨平台运行,你可以在任何支持 Java 的操作系统上使用它。

应用服务器与 Web 服务器:哪一个是适合你业务的服务器?

Web服务器与应用服务器选择哪个好?既然你了解了 Web 服务器和应用服务器之间的区别,就可以更轻松地看出哪一个更合适:

  •  如果你只 提供静态网页,请使用 网络服务器 。
  •  如果你的 应用需要 JSP 和 Servlet ,请使用更简单的应用服务器,如 Jetty 或 Apache Tomcat
  •  如果你的 应用具有 分布式事务和消息传递等复杂功能,请使用成熟的应用服务器,如 JBoss 或 Oracle WebLogic

另一种选择是使用插件向 Web 服务器添加功能。在这种情况下,Web 服务器可以将动态响应生成委托给服务器端技术选项,例如 CGI 脚本、JSP、Servlet、ASP(活动服务器页面)或服务器端 JavaScript。

在同一系统中使用两种服务器类型

Web服务器与应用服务器有什么区别?一种流行的设置是在同一系统中同时部署 Web 服务器和应用服务器。这种设置对于同时提供静态和动态内容的网站来说是有意义的。在这种情况下,Web 服务器成为应用服务器的一个子集,并且两个服务都运行在相同的硬件上。

部署这两种类型的服务器的主要原因是提高了系统性能。每个服务器都专注于其优势,你可以防止简单的 Web 请求影响应用服务器的性能。

例如,考虑提供实时定价信息的电子商店。此类站点通常具有用户可以用来购买产品的表单。当用户提交查询时,网站会进行查找并在 HTML 页面中返回结果集。

此功能可以在有和没有应用服务器的情况下运行。

场景 1:仅使用带有插件的 Web 服务器

Web服务器与应用服务器选择哪个好?Web 服务器提供电子商店功能:

  • 服务器接收请求并将其传递给服务器端程序。
  • 服务器端程序从数据库或平面文件中查找定价数据。
  • 服务器端程序制定一个 HTML 响应。
  • Web 服务器将响应发送回 Web 浏览器。

场景 2:同时使用 Web 服务器和应用服务器

应用服务器存储定价查找的业务逻辑。Web 服务器委托响应生成,但脚本调用应用服务器的查找服务,然后制定 HTML 响应。

通过将定价逻辑放在应用服务器中,该逻辑可以在应用的不同部分之间重用。在我们的第一个场景中,定价查找服务不可重用,因为数据嵌入在 HTML 页面中。

Web服务器与应用服务器有什么区别?选择哪个?

Web服务器与应用服务器差异比较总结

应用和 Web 服务器之间的重叠意味着每个用例都有几个有效的解决方案。大多数系统可以使用 Web 服务器、应用服务器或两者的组合运行。

但是,并非所有设置都同样出色。了解两种服务器类型之间的差异有助于你节省资金、更轻松地扩展并选择更适合你的用例的服务器。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: