繁体   English   中英

为什么有些应用程序需要使用其他 Web 服务器,例如 Apache 而 node 或 express 不需要?

[英]Why do some applications need to use other web servers like Apache while node or express doesnt?

我很困惑为什么在构建 node/express 应用程序时我不需要使用另一个 web 服务器,但是当使用 Java 或 Spring 或 python 后端时,通常使用像 nginx 或 apache 这样的 web 服务器。 我对 Apache 和 nginx 的作用感到困惑,它们是不是像我们在 node 或 express 中一样处理 HTTP 请求? 但是在 Spring 中有处理请求的控制器,那么为什么我们需要运行 JBoss 或 Apache?

在过去,“应用程序”和“应用程序服务器”/“Web 服务器”之间存在严格的分离。 应用程序服务器(如 JBoss)为部署在其上的应用程序提供资源配置(例如与数据库的连接)等。 Web 服务器(如 Apache)为可能托管在其上的多个 Web 应用程序提供了配置。

目前,在自托管应用程序(这意味着:包含嵌入式 HTTP 服务器的应用程序)时代,您通常不需要单独的网络服务器。 但是像 Nginx 这样的工具仍然被用作负载平衡器等。 应用服务器(JBoss 等)现在不经常使用,因为你可以在不要求操作人员做的情况下配置嵌入式 HTTP 服务器为您而设 - 更快、更方便。

如果您正在编写 NodeJS 应用程序,那么您不需要“需要”另一台服务器,除非您正在扩展生产就绪部署

简单的答案是 express、Apache、nginx 和 JBoss都是 Web 服务器 由于所有这些都是网络服务器,因此它们几乎可以相互完成工作。 然而,他们每个人都有长处和短处,这就是为什么他们经常可以一起工作。 例如,一种常见的做法是在 nginx 后面放置一个 express 服务器,让 nginx 处理负载平衡、静态资产和 SSL 终止,这是 nginx 非常擅长的,但也许让 API 和 websocket 连接传到 express 服务器,这就是 express 通常的做法擅长。

如果开发人员使用 PHP,他们可能会选择 Apache,因为集成非常好,但如果他们使用 Java EE,则选择 JBoss。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM