Web services 应用服务器v/s HTTP服务器

Web services 应用服务器v/s HTTP服务器,web-services,web-applications,unicorn,haskell-warp,Web Services,Web Applications,Unicorn,Haskell Warp,因此,我注意到各种应用服务器的文档(比如Unicorn、Puma for Ruby、Warp for Haskell等)总是提到类似于“它作为应用服务器进行了优化”。通常在描述在应用服务器前面的反向代理中使用HTTP服务器(如Ngnix)的标准设置时会提到这一点 因此,我的问题是:web应用程序服务器的编程究竟是什么使其在服务由代码v/s HTTP服务器生成的数据方面更高效?是否有任何特定的工程权衡?或者更重要的是,HTTP服务器是为服务磁盘文件而优化的,所以他们只是试图说HTTP服务器没有针对

因此,我注意到各种应用服务器的文档(比如Unicorn、Puma for Ruby、Warp for Haskell等)总是提到类似于“它作为应用服务器进行了优化”。通常在描述在应用服务器前面的反向代理中使用HTTP服务器(如Ngnix)的标准设置时会提到这一点


因此,我的问题是:web应用程序服务器的编程究竟是什么使其在服务由代码v/s HTTP服务器生成的数据方面更高效?是否有任何特定的工程权衡?或者更重要的是,HTTP服务器是为服务磁盘文件而优化的,所以他们只是试图说HTTP服务器没有针对应用程序代码进行优化?

首先,这实际上属于或

但基本上,Apache和Nginx严格地提供静态web内容。是的,您可以将PHP作为一个模块安装&当请求页面时,它将解析脚本。但这都是按需操作的。这意味着程序仅在请求页面时运行

相比之下,应用服务器运行的程序在内存中始终处于活动状态。这可能会带来一些工程上的好处,具体取决于您希望系统做什么。因此,Tomcat或Passenger(适用于Ruby)运行Java和Ruby应用程序,并经过优化以在生产服务器环境中运行

为什么要将Apache或Nginx作为前端连接?因为归根结底,Apache和Nginx仍然是简单交付web内容的最佳工具。并且有更好的优化和安全性

因此,应用服务器专注于使Java或Ruby尽可能干净地运行并提供基本的web内容,而Apache和Nginx则专注于web交付的前端


作为一名系统管理员,我更喜欢通过Apache或Nginx进行代理,因为我已经知道如何配置和优化这些工具供我使用。如果我必须学习如何微调Passenger或Tomcat,它应该只足以让我运行它,这样我就可以将Apache或Nginx放在前面了。

Oh,还有指向特定部分的链接这些应用服务器实现的ce代码将非常有用!