答案1
第一个例子是http://nodejs.org/是一个 Web 服务器。因此,node 不需要外部 Web 服务器,因为有一个用 Node 编写的 Web 服务器。在它前面放置另一个 Web 服务器可能会消除其吹捧的部分可扩展性。
PHP 通常与 Web 服务器(可能是 Apache Web 服务器)一起运行,这也是它从一开始就被设计为可以使用的方式。可能有一个用 PHP 编写的 Web 服务器(这似乎并非不可能......)但据我所知,这不是一个流行的解决方案。
关于“类似软件”,Tomcat 有一个内置的 Web 服务器,但通常将其放在另一个 Web 服务器后面。我见过的大多数 Common Lisp 应用服务器都是功能齐全的 Web 服务器,但似乎仍然流行在它们前面放置另一个 Web 服务器。
将传统的网络服务器放在应用服务器前面的一个优点是,更传统的网络服务器通常比大多数应用服务器更适合提供静态文件服务,因此您可以充分利用每个服务器的优势。
答案2
PHP 和 Node.js 都不需要 Apache,但都需要 Web 服务器。
网络服务器针对每个请求执行 PHP/Node.js 代码,并根据该代码提供响应。例如,PHP 可以通过 Apache 内部的 mod_php 运行,或者通过带有 LigHTTPd 或 nginx 的 FastCGI 运行。