age*_*eur 7 web-server thin apache-2.4
这是一个非常菜鸟的问题,因为我从来没有真正理解它,我想解释一下:
目前,我目前(有限且可能错误)对问题的理解是....Apache 是一个 http Web 服务器(在这种情况下就像一个反向代理(?)),而 Thin 是一个 ruby Web 应用程序服务器。为什么它们是它们的样子以及它们的工作方式多少让我有些回避。
互联网上的措辞也可能非常混乱(例如,Web 服务器与 Web 应用程序服务器,等等……(有点像“主机”或“主机名”可能会非常混乱))。如果我在网上找到的所有阅读材料对我来说都不是很清楚,我可以去哪里发展我的“对正在解决的问题的最小理解”?
Mic*_*ton 10
Thin、Passenger、WEBrick 或任何其他此类 Web 服务器具有单一目的。它接受来自网络的 HTTP 请求并将其传递给Rack,并将应用程序的响应返回到网络上。
(通常,Rack 用作使用 Rails 或 Sinatra 等框架编写的完整 Ruby 应用程序的一个组件。它通过自己的中间件处理传入的 HTTP 请求,并确保它们被路由到正确的应用程序代码。)
Thin 将请求发送到 Rack 之后,请求会发生什么变化,通常不是 Thin 关心的;这是应用程序和应用程序开发人员的关注点。
Ruby Web 服务器通常放置在更传统的 Web 服务器(例如 Apache 或 nginx)后面的原因是为了提高性能。Ruby Web 服务器是用 Ruby 编写的,并经过优化以处理它所服务的应用程序堆栈。特别是,它不一定非常擅长快速服务静态资产。在通常的生产设置中,传统的 Web 服务器将提供静态资产,Rails 在部署期间或首次访问时将其作为 rake 任务进行预编译,并且 Thin(或您选择的服务器)会将其他所有内容传递给应用程序。因此,单独运行 Thin 仅在开发环境中有用,因为性能通常没有问题。这不是我们会做的事情。(通常 WEBrick 用于此目的,因为它是 Rails 应用程序的默认 Web 服务器。)
作为系统管理员,我们通常不关心应用程序代码,但在某些情况下,您会希望与开发人员一起评估给定应用程序应该使用几种可能的 Ruby Web 服务器中的哪一种。虽然作为一般规则,从应用程序的角度来看,它们应该是可以互换的。
归档时间: |
|
查看次数: |
4118 次 |
最近记录: |