AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 605853
Accepted
agent provocateur
agent provocateur
Asked: 2014-06-18 12:07:07 +0800 CST2014-06-18 12:07:07 +0800 CST 2014-06-18 12:07:07 +0800 CST

什么是薄,我为什么需要它

  • 772

这是一个非常菜鸟的问题,因为我从来没有真正理解它,所以我想要一个解释:

  • 什么是瘦(或乘客或其他替代品)?
  • Thin(或其他替代方案)的目的是什么?
  • 为什么我需要带有 Apache(或 Nginx 或其他替代方案)的 Thin(或其他替代方案)?
  • 可以在没有 Apache(或其他 alt.)的情况下使用 Thin(或其他 alt.)吗?
  • Thin(或其他替代品)和 Apache(或其他替代品)之间有什么区别?

目前,我对这个问题的当前(有限且可能是错误的)理解是……Apache 是一个 http Web 服务器(在这种情况下就像一个反向代理(?)),而 Thin 是一个 ruby​​ Web 应用程序服务器。为什么他们是他们是什么以及他们如何工作在某种程度上让我回避了。

互联网上的措辞也可能非常令人困惑(例如,Web 服务器与 Web 应用程序服务器等等......(有点像“主机”或“主机名”可能非常令人困惑))。如果我在网上找到的所有阅读材料对我来说都不是很清楚,我可以去哪里发展我的“对正在解决的问题的最小理解”?

web-server
  • 1 1 个回答
  • 4642 Views

1 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2014-06-21T14:19:43+08:002014-06-21T14:19:43+08:00

    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 服务器中的哪一个应该与给定应用程序一起使用。尽管作为一般规则,从应用程序的角度来看,它们应该是可互换的。

    • 12

相关问题

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 持续监控许多服务器运行状况的简单方法?

  • 构建家庭服务器时要考虑的要点[关闭]

  • 用于 Web 应用服务器的 FreeBSD 磁盘分区(Apache/MySQL/PHP)

  • 我需要在 Rackspace 专用/托管网络和数据库 (Linux) 服务器上安装防病毒软件吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve